summaryrefslogtreecommitdiff
path: root/doc/sr
diff options
context:
space:
mode:
Diffstat (limited to 'doc/sr')
-rw-r--r--doc/sr/CMakeLists.txt164
-rw-r--r--doc/sr/Makefile.am135
l---------doc/sr/docinfo.html1
-rw-r--r--doc/sr/includes/autogen_api_completions.sr.adoc192
-rw-r--r--doc/sr/includes/autogen_api_hdata.sr.adoc1082
-rw-r--r--doc/sr/includes/autogen_api_infolists.sr.adoc94
-rw-r--r--doc/sr/includes/autogen_api_infos.sr.adoc164
-rw-r--r--doc/sr/includes/autogen_api_infos_hashtable.sr.adoc20
-rw-r--r--doc/sr/includes/autogen_api_plugins_priority.sr.adoc21
-rw-r--r--doc/sr/includes/autogen_api_url_options.sr.adoc436
-rw-r--r--doc/sr/includes/autogen_user_commands.sr.adoc3031
-rw-r--r--doc/sr/includes/autogen_user_default_aliases.sr.adoc44
-rw-r--r--doc/sr/includes/autogen_user_irc_colors.sr.adoc112
-rw-r--r--doc/sr/includes/autogen_user_options.sr.adoc3918
-rw-r--r--doc/sr/includes/cmdline_options.sr.adoc57
-rw-r--r--doc/sr/includes/man.sr.adoc104
-rw-r--r--doc/sr/weechat-headless.1.sr.adoc60
-rw-r--r--doc/sr/weechat.1.sr.adoc58
-rw-r--r--doc/sr/weechat_dev.sr.adoc1164
-rw-r--r--doc/sr/weechat_faq.sr.adoc1079
-rw-r--r--doc/sr/weechat_plugin_api.sr.adoc17385
-rw-r--r--doc/sr/weechat_quickstart.sr.adoc334
-rw-r--r--doc/sr/weechat_relay_protocol.sr.adoc2649
-rw-r--r--doc/sr/weechat_scripting.sr.adoc1348
-rw-r--r--doc/sr/weechat_tester.sr.adoc116
-rw-r--r--doc/sr/weechat_user.sr.adoc4378
26 files changed, 38146 insertions, 0 deletions
diff --git a/doc/sr/CMakeLists.txt b/doc/sr/CMakeLists.txt
new file mode 100644
index 000000000..e13bbe3a4
--- /dev/null
+++ b/doc/sr/CMakeLists.txt
@@ -0,0 +1,164 @@
+#
+# Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
+#
+# This file is part of WeeChat, the extensible chat client.
+#
+# WeeChat is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# WeeChat is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with WeeChat. If not, see <https://www.gnu.org/licenses/>.
+#
+
+if(ENABLE_MAN)
+ # man page: weechat
+ add_custom_command(
+ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/weechat.1
+ COMMAND ${ASCIIDOCTOR_EXECUTABLE} ARGS ${ASCIIDOCTOR_ARGS} -b manpage -o weechat.1 ${CMAKE_CURRENT_SOURCE_DIR}/weechat.1.sr.adoc
+ DEPENDS
+ ${CMAKE_CURRENT_SOURCE_DIR}/weechat.1.sr.adoc
+ ${CMAKE_CURRENT_SOURCE_DIR}/includes/cmdline_options.sr.adoc
+ ${CMAKE_CURRENT_SOURCE_DIR}/includes/man.sr.adoc
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+ COMMENT "Building weechat.1 (sr)"
+ )
+ add_custom_target(doc-man-weechat-sr ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/weechat.1)
+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/weechat.1 DESTINATION ${MANDIR}/sr/man1)
+
+ if(ENABLE_HEADLESS)
+ # man page: weechat-headless
+ add_custom_command(
+ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/weechat-headless.1
+ COMMAND ${ASCIIDOCTOR_EXECUTABLE} ARGS ${ASCIIDOCTOR_ARGS} -b manpage -o weechat-headless.1 ${CMAKE_CURRENT_SOURCE_DIR}/weechat-headless.1.sr.adoc
+ DEPENDS
+ ${CMAKE_CURRENT_SOURCE_DIR}/weechat-headless.1.sr.adoc
+ ${CMAKE_CURRENT_SOURCE_DIR}/includes/cmdline_options.sr.adoc
+ ${CMAKE_CURRENT_SOURCE_DIR}/includes/man.sr.adoc
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+ COMMENT "Building weechat-headless.1 (sr)"
+ )
+ add_custom_target(doc-man-weechat-headless-sr ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/weechat-headless.1)
+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/weechat-headless.1 DESTINATION ${MANDIR}/sr/man1)
+ endif()
+endif()
+
+if(ENABLE_DOC)
+
+ file(GLOB AUTOGEN_USER "${CMAKE_CURRENT_SOURCE_DIR}/includes/autogen_user_*.adoc")
+ file(GLOB AUTOGEN_PLUGIN "${CMAKE_CURRENT_SOURCE_DIR}/includes/autogen_api_*.adoc")
+
+ # user's guide
+ add_custom_command(
+ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/weechat_user.sr.html
+ COMMAND ${ASCIIDOCTOR_EXECUTABLE} ARGS ${ASCIIDOCTOR_ARGS} -o weechat_user.sr.html ${CMAKE_CURRENT_SOURCE_DIR}/weechat_user.sr.adoc
+ DEPENDS
+ ${CMAKE_CURRENT_SOURCE_DIR}/../docinfo.html
+ ${CMAKE_CURRENT_SOURCE_DIR}/weechat_user.sr.adoc
+ ${CMAKE_CURRENT_SOURCE_DIR}/includes/cmdline_options.sr.adoc
+ ${AUTOGEN_USER}
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+ COMMENT "Building weechat_user.sr.html"
+ )
+ add_custom_target(doc-user-sr ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/weechat_user.sr.html)
+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/weechat_user.sr.html DESTINATION ${DATAROOTDIR}/doc/${PROJECT_NAME})
+
+ # plugin API reference
+ add_custom_command(
+ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/weechat_plugin_api.sr.html
+ COMMAND ${ASCIIDOCTOR_EXECUTABLE} ARGS ${ASCIIDOCTOR_ARGS} -o weechat_plugin_api.sr.html ${CMAKE_CURRENT_SOURCE_DIR}/weechat_plugin_api.sr.adoc
+ DEPENDS
+ ${CMAKE_CURRENT_SOURCE_DIR}/../docinfo.html
+ ${CMAKE_CURRENT_SOURCE_DIR}/weechat_plugin_api.sr.adoc
+ ${AUTOGEN_PLUGIN}
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+ COMMENT "Building weechat_plugin_api.sr.html"
+ )
+ add_custom_target(doc-plugin-api-sr ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/weechat_plugin_api.sr.html)
+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/weechat_plugin_api.sr.html DESTINATION ${DATAROOTDIR}/doc/${PROJECT_NAME})
+
+ # scripting guide
+ add_custom_command(
+ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/weechat_scripting.sr.html
+ COMMAND ${ASCIIDOCTOR_EXECUTABLE} ARGS ${ASCIIDOCTOR_ARGS} -o weechat_scripting.sr.html ${CMAKE_CURRENT_SOURCE_DIR}/weechat_scripting.sr.adoc
+ DEPENDS
+ ${CMAKE_CURRENT_SOURCE_DIR}/../docinfo.html
+ ${CMAKE_CURRENT_SOURCE_DIR}/weechat_scripting.sr.adoc
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+ COMMENT "Building weechat_scripting.sr.html"
+ )
+ add_custom_target(doc-scripting-sr ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/weechat_scripting.sr.html)
+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/weechat_scripting.sr.html DESTINATION ${DATAROOTDIR}/doc/${PROJECT_NAME})
+
+ # FAQ
+ add_custom_command(
+ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/weechat_faq.sr.html
+ COMMAND ${ASCIIDOCTOR_EXECUTABLE} ARGS ${ASCIIDOCTOR_ARGS} -o weechat_faq.sr.html ${CMAKE_CURRENT_SOURCE_DIR}/weechat_faq.sr.adoc
+ DEPENDS
+ ${CMAKE_CURRENT_SOURCE_DIR}/../docinfo.html
+ ${CMAKE_CURRENT_SOURCE_DIR}/weechat_faq.sr.adoc
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+ COMMENT "Building weechat_faq.sr.html"
+ )
+ add_custom_target(doc-faq-sr ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/weechat_faq.sr.html)
+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/weechat_faq.sr.html DESTINATION ${DATAROOTDIR}/doc/${PROJECT_NAME})
+
+ # quickstart
+ add_custom_command(
+ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/weechat_quickstart.sr.html
+ COMMAND ${ASCIIDOCTOR_EXECUTABLE} ARGS ${ASCIIDOCTOR_ARGS} -o weechat_quickstart.sr.html ${CMAKE_CURRENT_SOURCE_DIR}/weechat_quickstart.sr.adoc
+ DEPENDS
+ ${CMAKE_CURRENT_SOURCE_DIR}/../docinfo.html
+ ${CMAKE_CURRENT_SOURCE_DIR}/weechat_quickstart.sr.adoc
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+ COMMENT "Building weechat_quickstart.sr.html"
+ )
+ add_custom_target(doc-quickstart-sr ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/weechat_quickstart.sr.html)
+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/weechat_quickstart.sr.html DESTINATION ${DATAROOTDIR}/doc/${PROJECT_NAME})
+
+ # tester's guide
+ add_custom_command(
+ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/weechat_tester.sr.html
+ COMMAND ${ASCIIDOCTOR_EXECUTABLE} ARGS ${ASCIIDOCTOR_ARGS} -o weechat_tester.sr.html ${CMAKE_CURRENT_SOURCE_DIR}/weechat_tester.sr.adoc
+ DEPENDS
+ ${CMAKE_CURRENT_SOURCE_DIR}/../docinfo.html
+ ${CMAKE_CURRENT_SOURCE_DIR}/weechat_tester.sr.adoc
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+ COMMENT "Building weechat_tester.sr.html"
+ )
+ add_custom_target(doc-tester-sr ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/weechat_tester.sr.html)
+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/weechat_tester.sr.html DESTINATION ${DATAROOTDIR}/doc/${PROJECT_NAME})
+
+ # relay protocol
+ add_custom_command(
+ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/weechat_relay_protocol.sr.html
+ COMMAND ${ASCIIDOCTOR_EXECUTABLE} ARGS ${ASCIIDOCTOR_ARGS} -o weechat_relay_protocol.sr.html ${CMAKE_CURRENT_SOURCE_DIR}/weechat_relay_protocol.sr.adoc
+ DEPENDS
+ ${CMAKE_CURRENT_SOURCE_DIR}/../docinfo.html
+ ${CMAKE_CURRENT_SOURCE_DIR}/weechat_relay_protocol.sr.adoc
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+ COMMENT "Building weechat_relay_protocol.sr.html"
+ )
+ add_custom_target(doc-relay-protocol-sr ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/weechat_relay_protocol.sr.html)
+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/weechat_relay_protocol.sr.html DESTINATION ${DATAROOTDIR}/doc/${PROJECT_NAME})
+
+ # developer's guide
+ add_custom_command(
+ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/weechat_dev.sr.html
+ COMMAND ${ASCIIDOCTOR_EXECUTABLE} ARGS ${ASCIIDOCTOR_ARGS} -o weechat_dev.sr.html ${CMAKE_CURRENT_SOURCE_DIR}/weechat_dev.sr.adoc
+ DEPENDS
+ ${CMAKE_CURRENT_SOURCE_DIR}/../docinfo.html
+ ${CMAKE_CURRENT_SOURCE_DIR}/weechat_dev.sr.adoc
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+ COMMENT "Building weechat_dev.sr.html"
+ )
+ add_custom_target(doc-dev-sr ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/weechat_dev.sr.html)
+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/weechat_dev.sr.html DESTINATION ${DATAROOTDIR}/doc/${PROJECT_NAME})
+
+endif()
diff --git a/doc/sr/Makefile.am b/doc/sr/Makefile.am
new file mode 100644
index 000000000..2c0e2ea56
--- /dev/null
+++ b/doc/sr/Makefile.am
@@ -0,0 +1,135 @@
+#
+# Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
+# Copyright (C) 2006 Julien Louis <ptitlouis@sysif.net>
+#
+# This file is part of WeeChat, the extensible chat client.
+#
+# WeeChat is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# WeeChat is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with WeeChat. If not, see <https://www.gnu.org/licenses/>.
+#
+
+docdir = $(datadir)/doc/$(PACKAGE)
+
+EXTRA_DIST = CMakeLists.txt \
+ docinfo.html \
+ weechat.1.sr.adoc \
+ weechat-headless.1.sr.adoc \
+ weechat_user.sr.adoc \
+ weechat_plugin_api.sr.adoc \
+ weechat_scripting.sr.adoc \
+ weechat_faq.sr.adoc \
+ weechat_quickstart.sr.adoc \
+ weechat_tester.sr.adoc \
+ weechat_relay_protocol.sr.adoc \
+ weechat_dev.sr.adoc \
+ includes/autogen_api_completions.sr.adoc \
+ includes/autogen_api_hdata.sr.adoc \
+ includes/autogen_api_infolists.sr.adoc \
+ includes/autogen_api_infos.sr.adoc \
+ includes/autogen_api_infos_hashtable.sr.adoc \
+ includes/autogen_api_plugins_priority.sr.adoc \
+ includes/autogen_api_url_options.sr.adoc \
+ includes/autogen_user_commands.sr.adoc \
+ includes/autogen_user_default_aliases.sr.adoc \
+ includes/autogen_user_irc_colors.sr.adoc \
+ includes/autogen_user_options.sr.adoc \
+ includes/cmdline_options.sr.adoc \
+ includes/man.sr.adoc
+
+if MAN
+ man_targets = weechat.1 \
+ weechat-headless.1
+ man_install = install-man
+ man_uninstall = uninstall-man
+endif
+if DOC
+ doc_targets = weechat_user.sr.html \
+ weechat_plugin_api.sr.html \
+ weechat_scripting.sr.html \
+ weechat_faq.sr.html \
+ weechat_quickstart.sr.html \
+ weechat_tester.sr.html \
+ weechat_relay_protocol.sr.html \
+ weechat_dev.sr.html
+ doc_install = install-doc
+ doc_uninstall = uninstall-doc
+endif
+all-local: $(man_targets) $(doc_targets)
+
+# man pages
+weechat.1: weechat.1.sr.adoc includes/cmdline_options.sr.adoc includes/man.sr.adoc
+ $(ASCIIDOCTOR) $(ASCIIDOCTOR_ARGS) -a revnumber="$(VERSION)" -b manpage -o weechat.1 $(abs_top_srcdir)/doc/sr/weechat.1.sr.adoc
+weechat-headless.1: weechat-headless.1.sr.adoc includes/cmdline_options.sr.adoc includes/man.sr.adoc
+ $(ASCIIDOCTOR) $(ASCIIDOCTOR_ARGS) -a revnumber="$(VERSION)" -b manpage -o weechat-headless.1 $(abs_top_srcdir)/doc/sr/weechat-headless.1.sr.adoc
+
+# user's guide
+weechat_user.sr.html: weechat_user.sr.adoc includes/cmdline_options.sr.adoc $(wildcard includes/autogen_user_*.adoc) $(abs_top_srcdir)/doc/docinfo.html
+ $(ASCIIDOCTOR) $(ASCIIDOCTOR_ARGS) -a revnumber="$(VERSION)" -o weechat_user.sr.html $(abs_top_srcdir)/doc/sr/weechat_user.sr.adoc
+
+# plugin API reference
+weechat_plugin_api.sr.html: weechat_plugin_api.sr.adoc $(wildcard includes/autogen_api_*.adoc) $(abs_top_srcdir)/doc/docinfo.html
+ $(ASCIIDOCTOR) $(ASCIIDOCTOR_ARGS) -a revnumber="$(VERSION)" -o weechat_plugin_api.sr.html $(abs_top_srcdir)/doc/sr/weechat_plugin_api.sr.adoc
+
+# scripting guide
+weechat_scripting.sr.html: weechat_scripting.sr.adoc $(abs_top_srcdir)/doc/docinfo.html
+ $(ASCIIDOCTOR) $(ASCIIDOCTOR_ARGS) -a revnumber="$(VERSION)" -o weechat_scripting.sr.html $(abs_top_srcdir)/doc/sr/weechat_scripting.sr.adoc
+
+# FAQ
+weechat_faq.sr.html: weechat_faq.sr.adoc $(abs_top_srcdir)/doc/docinfo.html
+ $(ASCIIDOCTOR) $(ASCIIDOCTOR_ARGS) -a revnumber="$(VERSION)" -o weechat_faq.sr.html $(abs_top_srcdir)/doc/sr/weechat_faq.sr.adoc
+
+# quickstart
+weechat_quickstart.sr.html: weechat_quickstart.sr.adoc $(abs_top_srcdir)/doc/docinfo.html
+ $(ASCIIDOCTOR) $(ASCIIDOCTOR_ARGS) -a revnumber="$(VERSION)" -o weechat_quickstart.sr.html $(abs_top_srcdir)/doc/sr/weechat_quickstart.sr.adoc
+
+# tester's guide
+weechat_tester.sr.html: weechat_tester.sr.adoc $(abs_top_srcdir)/doc/docinfo.html
+ $(ASCIIDOCTOR) $(ASCIIDOCTOR_ARGS) -a revnumber="$(VERSION)" -o weechat_tester.sr.html $(abs_top_srcdir)/doc/sr/weechat_tester.sr.adoc
+
+# relay protocol
+weechat_relay_protocol.sr.html: weechat_relay_protocol.sr.adoc $(abs_top_srcdir)/doc/docinfo.html
+ $(ASCIIDOCTOR) $(ASCIIDOCTOR_ARGS) -a revnumber="$(VERSION)" -o weechat_relay_protocol.sr.html $(abs_top_srcdir)/doc/sr/weechat_relay_protocol.sr.adoc
+
+# developer's guide
+weechat_dev.sr.html: weechat_dev.sr.adoc $(abs_top_srcdir)/doc/docinfo.html
+ $(ASCIIDOCTOR) $(ASCIIDOCTOR_ARGS) -a revnumber="$(VERSION)" -o weechat_dev.sr.html $(abs_top_srcdir)/doc/sr/weechat_dev.sr.adoc
+
+# install man/docs
+
+install-data-hook: $(man_install) $(doc_install)
+
+install-man:
+ $(mkinstalldirs) $(DESTDIR)$(mandir)/sr/man1/
+ $(INSTALL_DATA) *.1 $(DESTDIR)$(mandir)/sr/man1/
+
+install-doc:
+ $(mkinstalldirs) $(DESTDIR)$(docdir)/
+ $(INSTALL_DATA) *.html $(DESTDIR)$(docdir)/
+
+# uninstall man/docs
+
+uninstall-hook: $(man_uninstall) $(doc_uninstall)
+
+uninstall-man:
+ $(RM) $(DESTDIR)$(mandir)/sr/man1/weechat.1
+ $(RM) $(DESTDIR)$(mandir)/sr/man1/weechat-headless.1
+ -rmdir $(DESTDIR)$(mandir)/sr/man1
+
+uninstall-doc:
+ $(RM) $(DESTDIR)$(docdir)/*.sr.html
+ -rmdir $(DESTDIR)$(docdir)
+
+# clean
+
+clean-local:
+ -$(RM) weechat.1 weechat-headless.1 weechat_*.html
diff --git a/doc/sr/docinfo.html b/doc/sr/docinfo.html
new file mode 120000
index 000000000..c413f224f
--- /dev/null
+++ b/doc/sr/docinfo.html
@@ -0,0 +1 @@
+../docinfo.html \ No newline at end of file
diff --git a/doc/sr/includes/autogen_api_completions.sr.adoc b/doc/sr/includes/autogen_api_completions.sr.adoc
new file mode 100644
index 000000000..238d4f342
--- /dev/null
+++ b/doc/sr/includes/autogen_api_completions.sr.adoc
@@ -0,0 +1,192 @@
+//
+// This file is auto-generated by script docgen.py.
+// DO NOT EDIT BY HAND!
+//
+
+// tag::completions[]
+[width="100%",cols="^1,^2,7",options="header"]
+|===
+| Додатак | Име | Опис
+
+| alias | alias | листа алијаса
+
+| alias | alias_value | вредност алијаса
+
+| exec | exec_commands_ids | ids (бројеви и имена) извршених команди
+
+| fset | fset_options | конфигурациони фајлови, одељци, опције и речи опција
+
+| guile | guile_script | листа скрипти
+
+| irc | irc_channel | текући IRC канал
+
+| irc | irc_channel_nicks_hosts | надимци и имена хостова текућег IRC канала
+
+| irc | irc_channel_topic | тема текућег IRC канала
+
+| irc | irc_channels | канали на свим IRC серверима
+
+| irc | irc_ignores_numbers | бројеви за дефинисана игнорисања
+
+| irc | irc_modelist_masks | modelist маске текућег IRC канала; обавезни аргумент: modelist режим
+
+| irc | irc_modelist_numbers | modelist бројеви текућег IRC канала; обавезни аргумент: modelist режим
+
+| irc | irc_msg_kick | подразумевана порука о избацивању
+
+| irc | irc_msg_part | подразумевана поздравна порука за IRC канал
+
+| irc | irc_notify_nicks | надимци у листи за обавештавање
+
+| irc | irc_privates | приватни разговори на свим IRC серверима
+
+| irc | irc_raw_filters | филтери за сирови irc бафер
+
+| irc | irc_server | текући IRC сервер
+
+| irc | irc_server_channels | канали на текућем IRC серверу
+
+| irc | irc_server_nick | надимак на текућем IRC серверу
+
+| irc | irc_server_nicks | надимци на свим каналима текућег IRC сервера
+
+| irc | irc_server_privates | приватни разговори на текућем IRC серверу
+
+| irc | irc_servers | IRC сервери (интерна имена)
+
+| irc | nick | надимци текућег IRC канала
+
+| javascript | javascript_script | листа скрипти
+
+| lua | lua_script | листа скрипти
+
+| perl | perl_script | листа скрипти
+
+| php | php_script | листа скрипти
+
+| python | python_script | листа скрипти
+
+| relay | relay_free_port | први слободни порт за relay додатак
+
+| relay | relay_protocol_name | сви могући протокол.име за relay додатак
+
+| relay | relay_relays | протокол.име текућих релеја за relay додатак
+
+| ruby | ruby_script | листа скрипти
+
+| script | script_extensions | листа скрипт екстензија
+
+| script | script_files | фајлови у скрипт директоријумима
+
+| script | script_languages | листа скрипт језика
+
+| script | script_scripts | листа скрипти у репозиторијуму
+
+| script | script_scripts_installed | листа инсталираних скрипти (из репозиторијума)
+
+| script | script_tags | ознаке скрипти у репозиторијуму
+
+| spell | spell_dicts | листа инсталираних речника
+
+| spell | spell_langs | листа свих подржаних језика
+
+| tcl | tcl_script | листа скрипти
+
+| trigger | trigger_hook_arguments | подразумевани аргументи за куку
+
+| trigger | trigger_hook_command | подразумевана команда за куку
+
+| trigger | trigger_hook_conditions | подразумевани услови за куку
+
+| trigger | trigger_hook_rc | подразумевани повратни кодови за функцију повратног позива куке
+
+| trigger | trigger_hook_regex | подразумевани регуларни израз за куку
+
+| trigger | trigger_hooks | куке за окидаче
+
+| trigger | trigger_hooks_filter | куке за окидаче (за филтере у монитор баферу)
+
+| trigger | trigger_names | окидачи
+
+| trigger | trigger_names_default | подразумевани окидачи
+
+| trigger | trigger_option_value | вредност опције окидача
+
+| trigger | trigger_options | опције за окидаче
+
+| trigger | trigger_post_action | пост акције окидача
+
+| weechat | bars_names | имена трака
+
+| weechat | bars_options | опције за траке
+
+| weechat | buffer_local_variable_value | вредност бафер локалне променљиве
+
+| weechat | buffer_local_variables | бафер локалне променљиве
+
+| weechat | buffer_properties_get | особине које могу да се читају за бафер
+
+| weechat | buffer_properties_set | особине које могу да се поставе за бафер
+
+| weechat | buffers_names | имена бафера
+
+| weechat | buffers_numbers | бројеви бафера
+
+| weechat | buffers_plugins_names | имена бафера (укључујући имена додатака)
+
+| weechat | colors | имена боја
+
+| weechat | commands | команде (weechat и додаци); необавезни аргумент: префикс који се додаје испред команди
+
+| weechat | config_files | конфигурациони фајлови
+
+| weechat | config_option_values | вредности за опцију конфигурације
+
+| weechat | config_options | конфигурационе опције
+
+| weechat | cursor_areas | површине („chat” или име траке) за слободно померање курсора
+
+| weechat | env_value | вредност променљиве окружења
+
+| weechat | env_vars | променљиве окружења
+
+| weechat | filename | имефајла; необавезни аргумент: подразумевана путања (израчунато, погледајте /help eval)
+
+| weechat | filters_names | имена филтера
+
+| weechat | infolists | имена прикачених инфолисти
+
+| weechat | infos | имена прикачених infos
+
+| weechat | keys_codes | кодови тастера
+
+| weechat | keys_codes_for_reset | кодови тастера који могу да се ресетују (додати, редефинисани или уклоњени тастери)
+
+| weechat | keys_contexts | контексти тастера
+
+| weechat | layouts_names | имена распореда
+
+| weechat | nicks | надимци у листи надимака текућег бафера
+
+| weechat | palette_colors | палета боја
+
+| weechat | plugins_commands | команде које су дефинисали додаци; необавезни аргумент: префикс који се додаје испред команди
+
+| weechat | plugins_installed | имена инсталираних додатака
+
+| weechat | plugins_names | имена додатака
+
+| weechat | proxies_names | имена проксија
+
+| weechat | proxies_options | опције за проксије
+
+| weechat | secured_data | имена обезбеђених података (фајл sec.conf, одељак data)
+
+| weechat | weechat_commands | weechat команде; необавезни аргумент: префикс који се додаје испред команди
+
+| weechat | windows_numbers | бројеви прозора
+
+| xfer | nick | надимци за DCC разговор
+
+|===
+// end::completions[]
diff --git a/doc/sr/includes/autogen_api_hdata.sr.adoc b/doc/sr/includes/autogen_api_hdata.sr.adoc
new file mode 100644
index 000000000..53c0665a5
--- /dev/null
+++ b/doc/sr/includes/autogen_api_hdata.sr.adoc
@@ -0,0 +1,1082 @@
+//
+// This file is auto-generated by script docgen.py.
+// DO NOT EDIT BY HAND!
+//
+
+// tag::hdata[]
+:hdata_update_create: __create
+:hdata_update_delete: __delete
+[width="100%",cols="^1,^2,2,2,5",options="header"]
+|===
+| Додатак | Име | Опис | Листе | Променљиве
+
+| fset
+| [[hdata_fset_option]]<<hdata_fset_option,fset_option>>
+| fset опције
+| -
+| _index_   (integer) +
+_file_   (string) +
+_section_   (string) +
+_option_   (string) +
+_name_   (string) +
+_parent_name_   (string) +
+_type_   (integer) +
+_default_value_   (string) +
+_value_   (string) +
+_parent_value_   (string) +
+_min_   (string) +
+_max_   (string) +
+_description_   (string) +
+_string_values_   (string) +
+_marked_   (integer) +
+
+
+| guile
+| [[hdata_guile_script]]<<hdata_guile_script,guile_script>>
+| листа скрипти
+| _scripts_ +
+_last_script_ +
+
+| _filename_   (string) +
+_interpreter_   (pointer) +
+_name_   (string) +
+_author_   (string) +
+_version_   (string) +
+_license_   (string) +
+_description_   (string) +
+_shutdown_func_   (string) +
+_charset_   (string) +
+_unloading_   (integer) +
+_prev_script_   (pointer, hdata: "guile_script") +
+_next_script_   (pointer, hdata: "guile_script") +
+
+
+| irc
+| [[hdata_irc_channel]]<<hdata_irc_channel,irc_channel>>
+| irc channel
+| -
+| _type_   (integer) +
+_name_   (string) +
+_topic_   (string) +
+_modes_   (string) +
+_limit_   (integer) +
+_key_   (string) +
+_join_msg_received_   (hashtable) +
+_checking_whox_   (integer) +
+_away_message_   (string) +
+_has_quit_server_   (integer) +
+_cycle_   (integer) +
+_part_   (integer) +
+_nick_completion_reset_   (integer) +
+_pv_remote_nick_color_   (string) +
+_hook_autorejoin_   (pointer) +
+_nicks_count_   (integer) +
+_nicks_   (pointer, hdata: "irc_nick") +
+_last_nick_   (pointer, hdata: "irc_nick") +
+_nicks_speaking_   (pointer) +
+_nicks_speaking_time_   (pointer, hdata: "irc_channel_speaking") +
+_last_nick_speaking_time_   (pointer, hdata: "irc_channel_speaking") +
+_modelists_   (pointer, hdata: "irc_modelist") +
+_last_modelist_   (pointer, hdata: "irc_modelist") +
+_join_smart_filtered_   (hashtable) +
+_buffer_   (pointer, hdata: "buffer") +
+_buffer_as_string_   (string) +
+_prev_channel_   (pointer, hdata: "irc_channel") +
+_next_channel_   (pointer, hdata: "irc_channel") +
+
+
+| irc
+| [[hdata_irc_channel_speaking]]<<hdata_irc_channel_speaking,irc_channel_speaking>>
+| irc channel_speaking
+| -
+| _nick_   (string) +
+_time_last_message_   (time) +
+_prev_nick_   (pointer, hdata: "irc_channel_speaking") +
+_next_nick_   (pointer, hdata: "irc_channel_speaking") +
+
+
+| irc
+| [[hdata_irc_ignore]]<<hdata_irc_ignore,irc_ignore>>
+| irc ignore
+| _irc_ignore_list_ +
+_last_irc_ignore_ +
+
+| _number_   (integer) +
+_mask_   (string) +
+_regex_mask_   (pointer) +
+_server_   (string) +
+_channel_   (string) +
+_prev_ignore_   (pointer, hdata: "irc_ignore") +
+_next_ignore_   (pointer, hdata: "irc_ignore") +
+
+
+| irc
+| [[hdata_irc_modelist]]<<hdata_irc_modelist,irc_modelist>>
+| irc modelist
+| -
+| _type_   (char) +
+_state_   (integer) +
+_items_   (pointer, hdata: "irc_modelist_item") +
+_last_item_   (pointer, hdata: "irc_modelist_item") +
+_prev_modelist_   (pointer, hdata: "irc_modelist") +
+_next_modelist_   (pointer, hdata: "irc_modelist") +
+
+
+| irc
+| [[hdata_irc_modelist_item]]<<hdata_irc_modelist_item,irc_modelist_item>>
+| irc modelist ставка
+| -
+| _number_   (integer) +
+_mask_   (string) +
+_setter_   (string) +
+_datetime_   (time) +
+_prev_item_   (pointer, hdata: "irc_modelist_item") +
+_next_item_   (pointer, hdata: "irc_modelist_item") +
+
+
+| irc
+| [[hdata_irc_nick]]<<hdata_irc_nick,irc_nick>>
+| irc nick
+| -
+| _name_   (string) +
+_host_   (string) +
+_prefixes_   (string) +
+_prefix_   (string) +
+_away_   (integer) +
+_account_   (string) +
+_realname_   (string) +
+_color_   (string) +
+_prev_nick_   (pointer, hdata: "irc_nick") +
+_next_nick_   (pointer, hdata: "irc_nick") +
+
+
+| irc
+| [[hdata_irc_notify]]<<hdata_irc_notify,irc_notify>>
+| irc notify
+| -
+| _server_   (pointer, hdata: "irc_server") +
+_nick_   (string) +
+_check_away_   (integer) +
+_is_on_server_   (integer) +
+_away_message_   (string) +
+_ison_received_   (integer) +
+_prev_notify_   (pointer, hdata: "irc_notify") +
+_next_notify_   (pointer, hdata: "irc_notify") +
+
+
+| irc
+| [[hdata_irc_redirect]]<<hdata_irc_redirect,irc_redirect>>
+| irc redirect
+| -
+| _server_   (pointer, hdata: "irc_server") +
+_pattern_   (string) +
+_signal_   (string) +
+_count_   (integer) +
+_current_count_   (integer) +
+_string_   (string) +
+_timeout_   (integer) +
+_command_   (string) +
+_assigned_to_command_   (integer) +
+_start_time_   (time) +
+_cmd_start_   (hashtable) +
+_cmd_stop_   (hashtable) +
+_cmd_extra_   (hashtable) +
+_cmd_start_received_   (integer) +
+_cmd_stop_received_   (integer) +
+_cmd_filter_   (hashtable) +
+_output_   (string) +
+_output_size_   (integer) +
+_prev_redirect_   (pointer, hdata: "irc_redirect") +
+_next_redirect_   (pointer, hdata: "irc_redirect") +
+
+
+| irc
+| [[hdata_irc_redirect_pattern]]<<hdata_irc_redirect_pattern,irc_redirect_pattern>>
+| шаблон за irc redirect
+| _irc_redirect_patterns_ +
+_last_irc_redirect_pattern_ +
+
+| _name_   (string) +
+_temp_pattern_   (integer) +
+_timeout_   (integer) +
+_cmd_start_   (string) +
+_cmd_stop_   (string) +
+_cmd_extra_   (string) +
+_prev_redirect_   (pointer, hdata: "irc_redirect_pattern") +
+_next_redirect_   (pointer, hdata: "irc_redirect_pattern") +
+
+
+| irc
+| [[hdata_irc_server]]<<hdata_irc_server,irc_server>>
+| irc server
+| _irc_servers_ +
+_last_irc_server_ +
+
+| _name_   (string) +
+_options_   (pointer) +
+_temp_server_   (integer) +
+_fake_server_   (integer) +
+_reloading_from_config_   (integer) +
+_reloaded_from_config_   (integer) +
+_addresses_eval_   (string) +
+_addresses_count_   (integer) +
+_addresses_array_   (string, array_size: "addresses_count") +
+_ports_array_   (integer, array_size: "addresses_count") +
+_retry_array_   (integer, array_size: "addresses_count") +
+_index_current_address_   (integer) +
+_current_address_   (string) +
+_current_ip_   (string) +
+_current_port_   (integer) +
+_current_retry_   (integer) +
+_sock_   (integer) +
+_hook_connect_   (pointer, hdata: "hook") +
+_hook_fd_   (pointer, hdata: "hook") +
+_hook_timer_connection_   (pointer, hdata: "hook") +
+_hook_timer_sasl_   (pointer, hdata: "hook") +
+_sasl_scram_client_first_   (string) +
+_sasl_scram_salted_pwd_   (other) +
+_sasl_scram_salted_pwd_size_   (integer) +
+_sasl_scram_auth_message_   (string) +
+_is_connected_   (integer) +
+_ssl_connected_   (integer) +
+_disconnected_   (integer) +
+_gnutls_sess_   (other) +
+_tls_cert_   (other) +
+_tls_cert_key_   (other) +
+_unterminated_message_   (string) +
+_nicks_count_   (integer) +
+_nicks_array_   (string, array_size: "nicks_count") +
+_nick_first_tried_   (integer) +
+_nick_alternate_number_   (integer) +
+_nick_   (string) +
+_nick_modes_   (string) +
+_host_   (string) +
+_checking_cap_ls_   (integer) +
+_cap_ls_   (hashtable) +
+_checking_cap_list_   (integer) +
+_cap_list_   (hashtable) +
+_isupport_   (string) +
+_prefix_modes_   (string) +
+_prefix_chars_   (string) +
+_nick_max_length_   (integer) +
+_user_max_length_   (integer) +
+_host_max_length_   (integer) +
+_casemapping_   (integer) +
+_utf8mapping_   (integer) +
+_chantypes_   (string) +
+_chanmodes_   (string) +
+_monitor_   (integer) +
+_monitor_time_   (time) +
+_reconnect_delay_   (integer) +
+_reconnect_start_   (time) +
+_command_time_   (time) +
+_reconnect_join_   (integer) +
+_disable_autojoin_   (integer) +
+_is_away_   (integer) +
+_away_message_   (string) +
+_away_time_   (time) +
+_lag_   (integer) +
+_lag_displayed_   (integer) +
+_lag_check_time_   (other) +
+_lag_next_check_   (time) +
+_lag_last_refresh_   (time) +
+_cmd_list_regexp_   (pointer) +
+_last_user_message_   (time) +
+_last_away_check_   (time) +
+_last_data_purge_   (time) +
+_outqueue_   (pointer) +
+_last_outqueue_   (pointer) +
+_redirects_   (pointer, hdata: "irc_redirect") +
+_last_redirect_   (pointer, hdata: "irc_redirect") +
+_notify_list_   (pointer, hdata: "irc_notify") +
+_last_notify_   (pointer, hdata: "irc_notify") +
+_notify_count_   (integer) +
+_join_manual_   (hashtable) +
+_join_channel_key_   (hashtable) +
+_join_noswitch_   (hashtable) +
+_buffer_   (pointer, hdata: "buffer") +
+_buffer_as_string_   (string) +
+_channels_   (pointer, hdata: "irc_channel") +
+_last_channel_   (pointer, hdata: "irc_channel") +
+_prev_server_   (pointer, hdata: "irc_server") +
+_next_server_   (pointer, hdata: "irc_server") +
+
+
+| javascript
+| [[hdata_javascript_script]]<<hdata_javascript_script,javascript_script>>
+| листа скрипти
+| _scripts_ +
+_last_script_ +
+
+| _filename_   (string) +
+_interpreter_   (pointer) +
+_name_   (string) +
+_author_   (string) +
+_version_   (string) +
+_license_   (string) +
+_description_   (string) +
+_shutdown_func_   (string) +
+_charset_   (string) +
+_unloading_   (integer) +
+_prev_script_   (pointer, hdata: "javascript_script") +
+_next_script_   (pointer, hdata: "javascript_script") +
+
+
+| lua
+| [[hdata_lua_script]]<<hdata_lua_script,lua_script>>
+| листа скрипти
+| _scripts_ +
+_last_script_ +
+
+| _filename_   (string) +
+_interpreter_   (pointer) +
+_name_   (string) +
+_author_   (string) +
+_version_   (string) +
+_license_   (string) +
+_description_   (string) +
+_shutdown_func_   (string) +
+_charset_   (string) +
+_unloading_   (integer) +
+_prev_script_   (pointer, hdata: "lua_script") +
+_next_script_   (pointer, hdata: "lua_script") +
+
+
+| perl
+| [[hdata_perl_script]]<<hdata_perl_script,perl_script>>
+| листа скрипти
+| _scripts_ +
+_last_script_ +
+
+| _filename_   (string) +
+_interpreter_   (pointer) +
+_name_   (string) +
+_author_   (string) +
+_version_   (string) +
+_license_   (string) +
+_description_   (string) +
+_shutdown_func_   (string) +
+_charset_   (string) +
+_unloading_   (integer) +
+_prev_script_   (pointer, hdata: "perl_script") +
+_next_script_   (pointer, hdata: "perl_script") +
+
+
+| php
+| [[hdata_php_script]]<<hdata_php_script,php_script>>
+| листа скрипти
+| _scripts_ +
+_last_script_ +
+
+| _filename_   (string) +
+_interpreter_   (pointer) +
+_name_   (string) +
+_author_   (string) +
+_version_   (string) +
+_license_   (string) +
+_description_   (string) +
+_shutdown_func_   (string) +
+_charset_   (string) +
+_unloading_   (integer) +
+_prev_script_   (pointer, hdata: "php_script") +
+_next_script_   (pointer, hdata: "php_script") +
+
+
+| python
+| [[hdata_python_script]]<<hdata_python_script,python_script>>
+| листа скрипти
+| _scripts_ +
+_last_script_ +
+
+| _filename_   (string) +
+_interpreter_   (pointer) +
+_name_   (string) +
+_author_   (string) +
+_version_   (string) +
+_license_   (string) +
+_description_   (string) +
+_shutdown_func_   (string) +
+_charset_   (string) +
+_unloading_   (integer) +
+_prev_script_   (pointer, hdata: "python_script") +
+_next_script_   (pointer, hdata: "python_script") +
+
+
+| ruby
+| [[hdata_ruby_script]]<<hdata_ruby_script,ruby_script>>
+| листа скрипти
+| _scripts_ +
+_last_script_ +
+
+| _filename_   (string) +
+_interpreter_   (pointer) +
+_name_   (string) +
+_author_   (string) +
+_version_   (string) +
+_license_   (string) +
+_description_   (string) +
+_shutdown_func_   (string) +
+_charset_   (string) +
+_unloading_   (integer) +
+_prev_script_   (pointer, hdata: "ruby_script") +
+_next_script_   (pointer, hdata: "ruby_script") +
+
+
+| script
+| [[hdata_script_script]]<<hdata_script_script,script_script>>
+| скрипте из репозиторијума
+| _scripts_repo_ +
+_last_script_repo_ +
+
+| _name_   (string) +
+_name_with_extension_   (string) +
+_language_   (integer) +
+_author_   (string) +
+_mail_   (string) +
+_version_   (string) +
+_license_   (string) +
+_description_   (string) +
+_tags_   (string) +
+_requirements_   (string) +
+_min_weechat_   (string) +
+_max_weechat_   (string) +
+_sha512sum_   (string) +
+_url_   (string) +
+_popularity_   (integer) +
+_date_added_   (time) +
+_date_updated_   (time) +
+_status_   (integer) +
+_version_loaded_   (string) +
+_displayed_   (integer) +
+_install_order_   (integer) +
+_prev_script_   (pointer, hdata: "script_script") +
+_next_script_   (pointer, hdata: "script_script") +
+
+
+| tcl
+| [[hdata_tcl_script]]<<hdata_tcl_script,tcl_script>>
+| листа скрипти
+| _scripts_ +
+_last_script_ +
+
+| _filename_   (string) +
+_interpreter_   (pointer) +
+_name_   (string) +
+_author_   (string) +
+_version_   (string) +
+_license_   (string) +
+_description_   (string) +
+_shutdown_func_   (string) +
+_charset_   (string) +
+_unloading_   (integer) +
+_prev_script_   (pointer, hdata: "tcl_script") +
+_next_script_   (pointer, hdata: "tcl_script") +
+
+
+| weechat
+| [[hdata_bar]]<<hdata_bar,bar>>
+| трака
+| _gui_bars_ +
+_last_gui_bar_ +
+
+| _name_   (string) +
+_options_   (pointer) +
+_items_count_   (integer) +
+_items_subcount_   (pointer) +
+_items_array_   (pointer) +
+_items_buffer_   (pointer) +
+_items_prefix_   (pointer) +
+_items_name_   (pointer) +
+_items_suffix_   (pointer) +
+_bar_window_   (pointer, hdata: "bar_window") +
+_bar_refresh_needed_   (integer) +
+_prev_bar_   (pointer, hdata: "bar") +
+_next_bar_   (pointer, hdata: "bar") +
+
+
+| weechat
+| [[hdata_bar_item]]<<hdata_bar_item,bar_item>>
+| ставка траке
+| _gui_bar_items_ +
+_last_gui_bar_item_ +
+
+| _plugin_   (pointer, hdata: "plugin") +
+_name_   (string) +
+_build_callback_   (pointer) +
+_build_callback_pointer_   (pointer) +
+_build_callback_data_   (pointer) +
+_prev_item_   (pointer, hdata: "bar_item") +
+_next_item_   (pointer, hdata: "bar_item") +
+
+
+| weechat
+| [[hdata_bar_window]]<<hdata_bar_window,bar_window>>
+| прозор траке
+| -
+| _bar_   (pointer, hdata: "bar") +
+_x_   (integer) +
+_y_   (integer) +
+_width_   (integer) +
+_height_   (integer) +
+_scroll_x_   (integer) +
+_scroll_y_   (integer) +
+_cursor_x_   (integer) +
+_cursor_y_   (integer) +
+_current_size_   (integer) +
+_items_count_   (integer) +
+_items_subcount_   (pointer) +
+_items_content_   (pointer) +
+_items_num_lines_   (pointer) +
+_items_refresh_needed_   (pointer) +
+_screen_col_size_   (integer) +
+_screen_lines_   (integer) +
+_coords_count_   (integer) +
+_coords_   (pointer) +
+_gui_objects_   (pointer) +
+_prev_bar_window_   (pointer, hdata: "bar_window") +
+_next_bar_window_   (pointer, hdata: "bar_window") +
+
+*Ажурирање дозвољено:* +
+    _scroll_x_ (integer) +
+    _scroll_y_ (integer) +
+
+| weechat
+| [[hdata_buffer]]<<hdata_buffer,buffer>>
+| бафер
+| _gui_buffer_last_displayed_ +
+_gui_buffers_ +
+_last_gui_buffer_ +
+
+| _plugin_   (pointer, hdata: "plugin") +
+_plugin_name_for_upgrade_   (string) +
+_number_   (integer) +
+_layout_number_   (integer) +
+_layout_number_merge_order_   (integer) +
+_name_   (string) +
+_full_name_   (string) +
+_old_full_name_   (string) +
+_short_name_   (string) +
+_type_   (integer) +
+_notify_   (integer) +
+_num_displayed_   (integer) +
+_active_   (integer) +
+_hidden_   (integer) +
+_zoomed_   (integer) +
+_print_hooks_enabled_   (integer) +
+_day_change_   (integer) +
+_clear_   (integer) +
+_filter_   (integer) +
+_close_callback_   (pointer) +
+_close_callback_pointer_   (pointer) +
+_close_callback_data_   (pointer) +
+_closing_   (integer) +
+_title_   (string) +
+_own_lines_   (pointer, hdata: "lines") +
+_mixed_lines_   (pointer, hdata: "lines") +
+_lines_   (pointer, hdata: "lines") +
+_time_for_each_line_   (integer) +
+_chat_refresh_needed_   (integer) +
+_nicklist_   (integer) +
+_nicklist_case_sensitive_   (integer) +
+_nicklist_root_   (pointer, hdata: "nick_group") +
+_nicklist_max_length_   (integer) +
+_nicklist_display_groups_   (integer) +
+_nicklist_count_   (integer) +
+_nicklist_visible_count_   (integer) +
+_nicklist_groups_count_   (integer) +
+_nicklist_groups_visible_count_   (integer) +
+_nicklist_nicks_count_   (integer) +
+_nicklist_nicks_visible_count_   (integer) +
+_nickcmp_callback_   (pointer) +
+_nickcmp_callback_pointer_   (pointer) +
+_nickcmp_callback_data_   (pointer) +
+_input_   (integer) +
+_input_callback_   (pointer) +
+_input_callback_pointer_   (pointer) +
+_input_callback_data_   (pointer) +
+_input_get_unknown_commands_   (integer) +
+_input_get_empty_   (integer) +
+_input_multiline_   (integer) +
+_input_buffer_   (string) +
+_input_buffer_alloc_   (integer) +
+_input_buffer_size_   (integer) +
+_input_buffer_length_   (integer) +
+_input_buffer_pos_   (integer) +
+_input_buffer_1st_display_   (integer) +
+_input_undo_snap_   (pointer, hdata: "input_undo") +
+_input_undo_   (pointer, hdata: "input_undo") +
+_last_input_undo_   (pointer, hdata: "input_undo") +
+_ptr_input_undo_   (pointer, hdata: "input_undo") +
+_input_undo_count_   (integer) +
+_completion_   (pointer, hdata: "completion") +
+_history_   (pointer, hdata: "history") +
+_last_history_   (pointer, hdata: "history") +
+_ptr_history_   (pointer, hdata: "history") +
+_num_history_   (integer) +
+_text_search_   (integer) +
+_text_search_exact_   (integer) +
+_text_search_regex_   (integer) +
+_text_search_regex_compiled_   (pointer) +
+_text_search_where_   (integer) +
+_text_search_found_   (integer) +
+_text_search_input_   (string) +
+_highlight_words_   (string) +
+_highlight_regex_   (string) +
+_highlight_regex_compiled_   (pointer) +
+_highlight_tags_restrict_   (string) +
+_highlight_tags_restrict_count_   (integer) +
+_highlight_tags_restrict_array_   (pointer, array_size: "highlight_tags_restrict_count") +
+_highlight_tags_   (string) +
+_highlight_tags_count_   (integer) +
+_highlight_tags_array_   (pointer, array_size: "highlight_tags_count") +
+_hotlist_   (pointer, hdata: "hotlist") +
+_hotlist_max_level_nicks_   (hashtable) +
+_keys_   (pointer, hdata: "key") +
+_last_key_   (pointer, hdata: "key") +
+_keys_count_   (integer) +
+_local_variables_   (hashtable) +
+_prev_buffer_   (pointer, hdata: "buffer") +
+_next_buffer_   (pointer, hdata: "buffer") +
+
+
+| weechat
+| [[hdata_buffer_visited]]<<hdata_buffer_visited,buffer_visited>>
+| посећени бафер
+| _gui_buffers_visited_ +
+_last_gui_buffer_visited_ +
+
+| _buffer_   (pointer, hdata: "buffer") +
+_prev_buffer_   (pointer, hdata: "buffer_visited") +
+_next_buffer_   (pointer, hdata: "buffer_visited") +
+
+
+| weechat
+| [[hdata_completion]]<<hdata_completion,completion>>
+| структура са довршавањем
+| _weechat_completions_ +
+_last_weechat_completion_ +
+
+| _plugin_   (pointer, hdata: "plugin") +
+_buffer_   (pointer, hdata: "buffer") +
+_context_   (integer) +
+_base_command_   (string) +
+_base_command_arg_index_   (integer) +
+_base_word_   (string) +
+_base_word_pos_   (integer) +
+_position_   (integer) +
+_args_   (string) +
+_direction_   (integer) +
+_add_space_   (integer) +
+_force_partial_completion_   (integer) +
+_reverse_partial_completion_   (integer) +
+_list_   (pointer) +
+_word_found_   (string) +
+_word_found_is_nick_   (integer) +
+_position_replace_   (integer) +
+_diff_size_   (integer) +
+_diff_length_   (integer) +
+_partial_list_   (pointer) +
+_prev_completion_   (pointer, hdata: "completion") +
+_next_completion_   (pointer, hdata: "completion") +
+
+
+| weechat
+| [[hdata_completion_word]]<<hdata_completion_word,completion_word>>
+| структура са речи која је пронађена код довршавања
+| -
+| _word_   (string) +
+_nick_completion_   (char) +
+_count_   (integer) +
+
+
+| weechat
+| [[hdata_config_file]]<<hdata_config_file,config_file>>
+| конфигурациони фајл
+| _config_files_ +
+_last_config_file_ +
+
+| _plugin_   (pointer, hdata: "plugin") +
+_name_   (string) +
+_filename_   (string) +
+_file_   (pointer) +
+_callback_reload_   (pointer) +
+_callback_reload_pointer_   (pointer) +
+_callback_reload_data_   (pointer) +
+_sections_   (pointer, hdata: "config_section") +
+_last_section_   (pointer, hdata: "config_section") +
+_prev_config_   (pointer, hdata: "config_file") +
+_next_config_   (pointer, hdata: "config_file") +
+
+
+| weechat
+| [[hdata_config_option]]<<hdata_config_option,config_option>>
+| опција конфигурације
+| -
+| _config_file_   (pointer, hdata: "config_file") +
+_section_   (pointer, hdata: "config_section") +
+_name_   (string) +
+_parent_name_   (string) +
+_type_   (integer) +
+_description_   (string) +
+_string_values_   (string, array_size: "*") +
+_min_   (integer) +
+_max_   (integer) +
+_default_value_   (pointer) +
+_value_   (pointer) +
+_null_value_allowed_   (integer) +
+_callback_check_value_   (pointer) +
+_callback_check_value_pointer_   (pointer) +
+_callback_check_value_data_   (pointer) +
+_callback_change_   (pointer) +
+_callback_change_pointer_   (pointer) +
+_callback_change_data_   (pointer) +
+_callback_delete_   (pointer) +
+_callback_delete_pointer_   (pointer) +
+_callback_delete_data_   (pointer) +
+_loaded_   (integer) +
+_prev_option_   (pointer, hdata: "config_option") +
+_next_option_   (pointer, hdata: "config_option") +
+
+
+| weechat
+| [[hdata_config_section]]<<hdata_config_section,config_section>>
+| одељак конфигурације
+| -
+| _config_file_   (pointer, hdata: "config_file") +
+_name_   (string) +
+_user_can_add_options_   (integer) +
+_user_can_delete_options_   (integer) +
+_callback_read_   (pointer) +
+_callback_read_pointer_   (pointer) +
+_callback_read_data_   (pointer) +
+_callback_write_   (pointer) +
+_callback_write_pointer_   (pointer) +
+_callback_write_data_   (pointer) +
+_callback_write_default_   (pointer) +
+_callback_write_default_pointer_   (pointer) +
+_callback_write_default_data_   (pointer) +
+_callback_create_option_   (pointer) +
+_callback_create_option_pointer_   (pointer) +
+_callback_create_option_data_   (pointer) +
+_callback_delete_option_   (pointer) +
+_callback_delete_option_pointer_   (pointer) +
+_callback_delete_option_data_   (pointer) +
+_options_   (pointer, hdata: "config_option") +
+_last_option_   (pointer, hdata: "config_option") +
+_prev_section_   (pointer, hdata: "config_section") +
+_next_section_   (pointer, hdata: "config_section") +
+
+
+| weechat
+| [[hdata_filter]]<<hdata_filter,filter>>
+| филтер
+| _gui_filters_ +
+_last_gui_filter_ +
+
+| _enabled_   (integer) +
+_name_   (string) +
+_buffer_name_   (string) +
+_num_buffers_   (integer) +
+_buffers_   (pointer) +
+_tags_   (string) +
+_tags_count_   (integer) +
+_tags_array_   (pointer, array_size: "tags_count") +
+_regex_   (string) +
+_regex_prefix_   (pointer) +
+_regex_message_   (pointer) +
+_prev_filter_   (pointer, hdata: "filter") +
+_next_filter_   (pointer, hdata: "filter") +
+
+
+| weechat
+| [[hdata_history]]<<hdata_history,history>>
+| историја команди у баферу
+| _gui_history_ +
+_last_gui_history_ +
+
+| _text_   (string) +
+_next_history_   (pointer, hdata: "history") +
+_prev_history_   (pointer, hdata: "history") +
+
+*Ажурирање дозвољено:* +
+    _{hdata_update_create}_ +
+    _{hdata_update_delete}_ +
+
+| weechat
+| [[hdata_hotlist]]<<hdata_hotlist,hotlist>>
+| врућа листа
+| _gui_hotlist_ +
+_last_gui_hotlist_ +
+
+| _priority_   (integer) +
+_creation_time.tv_sec_   (time) +
+_creation_time.tv_usec_   (long) +
+_buffer_   (pointer) +
+_count_   (integer, array_size: "4") +
+_prev_hotlist_   (pointer, hdata: "hotlist") +
+_next_hotlist_   (pointer, hdata: "hotlist") +
+
+
+| weechat
+| [[hdata_input_undo]]<<hdata_input_undo,input_undo>>
+| структура са поништавањем за линију уноса
+| -
+| _data_   (string) +
+_pos_   (integer) +
+_prev_undo_   (pointer, hdata: "input_undo") +
+_next_undo_   (pointer, hdata: "input_undo") +
+
+
+| weechat
+| [[hdata_key]]<<hdata_key,key>>
+| тастер (пречица на тастатури)
+| _gui_default_keys_ +
+_gui_default_keys_cursor_ +
+_gui_default_keys_mouse_ +
+_gui_default_keys_search_ +
+_gui_keys_ +
+_gui_keys_cursor_ +
+_gui_keys_mouse_ +
+_gui_keys_search_ +
+_last_gui_default_key_ +
+_last_gui_default_key_cursor_ +
+_last_gui_default_key_mouse_ +
+_last_gui_default_key_search_ +
+_last_gui_key_ +
+_last_gui_key_cursor_ +
+_last_gui_key_mouse_ +
+_last_gui_key_search_ +
+
+| _key_   (string) +
+_area_type_   (pointer) +
+_area_name_   (pointer) +
+_area_key_   (string) +
+_command_   (string) +
+_score_   (integer) +
+_prev_key_   (pointer, hdata: "key") +
+_next_key_   (pointer, hdata: "key") +
+
+
+| weechat
+| [[hdata_layout]]<<hdata_layout,layout>>
+| распоред
+| _gui_layout_current_ +
+_gui_layouts_ +
+_last_gui_layout_ +
+
+| _name_   (string) +
+_layout_buffers_   (pointer, hdata: "layout_buffer") +
+_last_layout_buffer_   (pointer, hdata: "layout_buffer") +
+_layout_windows_   (pointer, hdata: "layout_window") +
+_internal_id_   (integer) +
+_internal_id_current_window_   (integer) +
+_prev_layout_   (pointer, hdata: "layout") +
+_next_layout_   (pointer, hdata: "layout") +
+
+
+| weechat
+| [[hdata_layout_buffer]]<<hdata_layout_buffer,layout_buffer>>
+| распоред бафера
+| -
+| _plugin_name_   (string) +
+_buffer_name_   (string) +
+_number_   (integer) +
+_prev_layout_   (pointer, hdata: "layout_buffer") +
+_next_layout_   (pointer, hdata: "layout_buffer") +
+
+
+| weechat
+| [[hdata_layout_window]]<<hdata_layout_window,layout_window>>
+| распоред прозора
+| -
+| _internal_id_   (integer) +
+_parent_node_   (pointer, hdata: "layout_window") +
+_split_pct_   (integer) +
+_split_horiz_   (integer) +
+_child1_   (pointer, hdata: "layout_window") +
+_child2_   (pointer, hdata: "layout_window") +
+_plugin_name_   (string) +
+_buffer_name_   (string) +
+
+
+| weechat
+| [[hdata_line]]<<hdata_line,line>>
+| структура са једном линијом
+| -
+| _data_   (pointer, hdata: "line_data") +
+_prev_line_   (pointer, hdata: "line") +
+_next_line_   (pointer, hdata: "line") +
+
+
+| weechat
+| [[hdata_line_data]]<<hdata_line_data,line_data>>
+| структура са подацима у једној линији
+| -
+| _buffer_   (pointer, hdata: "buffer") +
+_y_   (integer) +
+_date_   (time) +
+_date_printed_   (time) +
+_str_time_   (string) +
+_tags_count_   (integer) +
+_tags_array_   (shared_string, array_size: "tags_count") +
+_displayed_   (char) +
+_notify_level_   (char) +
+_highlight_   (char) +
+_refresh_needed_   (char) +
+_prefix_   (shared_string) +
+_prefix_length_   (integer) +
+_message_   (string) +
+
+*Ажурирање дозвољено:* +
+    _date_ (time) +
+    _date_printed_ (time) +
+    _tags_array_ (shared_string) +
+    _prefix_ (shared_string) +
+    _message_ (string) +
+
+| weechat
+| [[hdata_lines]]<<hdata_lines,lines>>
+| структура са линијама
+| -
+| _first_line_   (pointer, hdata: "line") +
+_last_line_   (pointer, hdata: "line") +
+_last_read_line_   (pointer, hdata: "line") +
+_lines_count_   (integer) +
+_first_line_not_read_   (integer) +
+_lines_hidden_   (integer) +
+_buffer_max_length_   (integer) +
+_buffer_max_length_refresh_   (integer) +
+_prefix_max_length_   (integer) +
+_prefix_max_length_refresh_   (integer) +
+
+
+| weechat
+| [[hdata_nick]]<<hdata_nick,nick>>
+| надимак у листи надимака
+| -
+| _group_   (pointer, hdata: "nick_group") +
+_name_   (shared_string) +
+_color_   (shared_string) +
+_prefix_   (shared_string) +
+_prefix_color_   (shared_string) +
+_visible_   (integer) +
+_prev_nick_   (pointer, hdata: "nick") +
+_next_nick_   (pointer, hdata: "nick") +
+
+
+| weechat
+| [[hdata_nick_group]]<<hdata_nick_group,nick_group>>
+| група у листи надимака
+| -
+| _name_   (shared_string) +
+_color_   (shared_string) +
+_visible_   (integer) +
+_level_   (integer) +
+_parent_   (pointer, hdata: "nick_group") +
+_children_   (pointer, hdata: "nick_group") +
+_last_child_   (pointer, hdata: "nick_group") +
+_nicks_   (pointer, hdata: "nick") +
+_last_nick_   (pointer, hdata: "nick") +
+_prev_group_   (pointer, hdata: "nick_group") +
+_next_group_   (pointer, hdata: "nick_group") +
+
+
+| weechat
+| [[hdata_plugin]]<<hdata_plugin,plugin>>
+| додатак
+| _weechat_plugins_ +
+_last_weechat_plugin_ +
+
+| _filename_   (string) +
+_handle_   (pointer) +
+_name_   (string) +
+_description_   (string) +
+_author_   (string) +
+_version_   (string) +
+_license_   (string) +
+_charset_   (string) +
+_priority_   (integer) +
+_initialized_   (integer) +
+_debug_   (integer) +
+_upgrading_   (integer) +
+_variables_   (hashtable) +
+_prev_plugin_   (pointer, hdata: "plugin") +
+_next_plugin_   (pointer, hdata: "plugin") +
+
+
+| weechat
+| [[hdata_proxy]]<<hdata_proxy,proxy>>
+| прокси
+| _weechat_proxies_ +
+_last_weechat_proxy_ +
+
+| _name_   (string) +
+_options_   (pointer) +
+_prev_proxy_   (pointer, hdata: "proxy") +
+_next_proxy_   (pointer, hdata: "proxy") +
+
+
+| weechat
+| [[hdata_window]]<<hdata_window,window>>
+| прозор
+| _gui_current_window_ +
+_gui_windows_ +
+_last_gui_window_ +
+
+| _number_   (integer) +
+_win_x_   (integer) +
+_win_y_   (integer) +
+_win_width_   (integer) +
+_win_height_   (integer) +
+_win_width_pct_   (integer) +
+_win_height_pct_   (integer) +
+_win_chat_x_   (integer) +
+_win_chat_y_   (integer) +
+_win_chat_width_   (integer) +
+_win_chat_height_   (integer) +
+_win_chat_cursor_x_   (integer) +
+_win_chat_cursor_y_   (integer) +
+_bar_windows_   (pointer, hdata: "bar_window") +
+_last_bar_window_   (pointer, hdata: "bar_window") +
+_refresh_needed_   (integer) +
+_gui_objects_   (pointer) +
+_buffer_   (pointer, hdata: "buffer") +
+_layout_plugin_name_   (string) +
+_layout_buffer_name_   (string) +
+_scroll_   (pointer, hdata: "window_scroll") +
+_ptr_tree_   (pointer, hdata: "window_tree") +
+_prev_window_   (pointer, hdata: "window") +
+_next_window_   (pointer, hdata: "window") +
+
+
+| weechat
+| [[hdata_window_scroll]]<<hdata_window_scroll,window_scroll>>
+| инфо о скроловању у прозору
+| -
+| _buffer_   (pointer, hdata: "buffer") +
+_first_line_displayed_   (integer) +
+_start_line_   (pointer, hdata: "line") +
+_start_line_pos_   (integer) +
+_scrolling_   (integer) +
+_start_col_   (integer) +
+_lines_after_   (integer) +
+_text_search_start_line_   (pointer, hdata: "line") +
+_prev_scroll_   (pointer, hdata: "window_scroll") +
+_next_scroll_   (pointer, hdata: "window_scroll") +
+
+
+| weechat
+| [[hdata_window_tree]]<<hdata_window_tree,window_tree>>
+| стабло прозора
+| _gui_windows_tree_ +
+
+| _parent_node_   (pointer, hdata: "window_tree") +
+_split_pct_   (integer) +
+_split_horizontal_   (integer) +
+_child1_   (pointer, hdata: "window_tree") +
+_child2_   (pointer, hdata: "window_tree") +
+_window_   (pointer, hdata: "window") +
+
+
+|===
+// end::hdata[]
diff --git a/doc/sr/includes/autogen_api_infolists.sr.adoc b/doc/sr/includes/autogen_api_infolists.sr.adoc
new file mode 100644
index 000000000..12827fa8d
--- /dev/null
+++ b/doc/sr/includes/autogen_api_infolists.sr.adoc
@@ -0,0 +1,94 @@
+//
+// This file is auto-generated by script docgen.py.
+// DO NOT EDIT BY HAND!
+//
+
+// tag::infolists[]
+[width="100%",cols="^1,^2,5,5,5",options="header"]
+|===
+| Додатак | Име | Опис | Показивач | Аргументи
+
+| alias | alias | листа алијаса | показивач на алијас (необавезно) | име алијаса (дозвољен је џокер „*”) (необавезно)
+
+| alias | alias_default | листа подразумеваних алијаса | - | -
+
+| buflist | buflist | листа бафера у buflist ставки траке | - | име buflist ставке траке (необавезно)
+
+| fset | fset_option | листа fset опција | показивач fset опција (необавезно) | име опције (дозвољен је џокер „*”) (необавезно)
+
+| guile | guile_script | листа скрипти | поинтер на скрипту (није обавезан) | име скрипте (дозвољен је џокер „*”) (није обавезно)
+
+| irc | irc_channel | листа канала на IRC серверу | показивач на канал (није обавезан) | сервер,канал (канал није обавезан)
+
+| irc | irc_color_weechat | мапирање кодова IRC боја и WeeChat имена боја | - | -
+
+| irc | irc_ignore | листа IRC игнорисања | показивач игнорисања (није обавезан) | -
+
+| irc | irc_modelist | листа листи режима канала за IRC канал | показивач на листу режима (није обавезан) | сервер,канал,тип (тип није обавезан)
+
+| irc | irc_modelist_item | листа ставки у листи режима канала | показивач на ставку листе режима (није обавезан) | сервер,канал,тип,број (број није обавезан)
+
+| irc | irc_nick | листа надимака за IRC канал | показивач надимка (није обавезан) | сервер,канал,надимак (надимак није обавезан)
+
+| irc | irc_notify | листа обавештења | показивач обавештења (није обавезан) | име сервера (дозвољен је џокер „*”) (није обавезно)
+
+| irc | irc_server | листа IRC сервера | показивач на сервер (није обавезан) | име сервера (дозвољен је џокер „*”) (није обавезно)
+
+| javascript | javascript_script | листа скрипти | поинтер на скрипту (није обавезан) | име скрипте (дозвољен је џокер „*”) (није обавезно)
+
+| logger | logger_buffer | листа логер бафера | показивач на логер (није обавезан) | -
+
+| lua | lua_script | листа скрипти | поинтер на скрипту (није обавезан) | име скрипте (дозвољен је џокер „*”) (није обавезно)
+
+| perl | perl_script | листа скрипти | поинтер на скрипту (није обавезан) | име скрипте (дозвољен је џокер „*”) (није обавезно)
+
+| php | php_script | листа скрипти | поинтер на скрипту (није обавезан) | име скрипте (дозвољен је џокер „*”) (није обавезно)
+
+| python | python_script | листа скрипти | поинтер на скрипту (није обавезан) | име скрипте (дозвољен је џокер „*”) (није обавезно)
+
+| relay | relay | листа релеј клијената | показивач на релеј (није обавезан) | -
+
+| ruby | ruby_script | листа скрипти | поинтер на скрипту (није обавезан) | име скрипте (дозвољен је џокер „*”) (није обавезно)
+
+| script | script_script | листа скрипти | поинтер на скрипту (није обавезан) | име скрипте са екстензијом (дозвољен је џокер „*”) (није обавезно)
+
+| tcl | tcl_script | листа скрипти | поинтер на скрипту (није обавезан) | име скрипте (дозвољен је џокер „*”) (није обавезно)
+
+| weechat | bar | листа трака | показивач на траку (није обавезан) | име траке (дозвољен је џокер „*”) (није обавезно)
+
+| weechat | bar_item | листа ставки траке | показивач на ставку траке (није обавезан) | име ставке траке (дозвољен је џокер „*”) (није обавезно)
+
+| weechat | bar_window | листа прозора трака | показивач на прозор траке (није обавезан) | -
+
+| weechat | buffer | листа бафера | показивач на бафер (није обавезан) | име бафера (дозвољен је џокер „*”) (није обавезно)
+
+| weechat | buffer_lines | линије бафера | показивач на бафер | -
+
+| weechat | filter | листа филтера | - | име филтера (дозвољен је џокер „*”) (није обавезно)
+
+| weechat | history | историја команди | показивач на бафер (ако није постављен, враћа се глобална историја) (није обавезан) | -
+
+| weechat | hook | листа кука | показивач на куку (није обавезан) | тип,аргументи (тип је command/timer/.., аргументи ако желите да вам се врате само неке куке (дозвољен је џокер „*”), оба нису обавезни)
+
+| weechat | hotlist | листа бафера у врућој листи | - | -
+
+| weechat | key | листа тастерских пречица | - | контекст („default”, „search”, „cursor” или „mouse”) (није обавезан)
+
+| weechat | layout | листа распореда | - | -
+
+| weechat | nicklist | надимци у листи надимака за бафер | показивач на бафер | nick_xxx или group_xxx ако желите само надимак/групу xxx (није обавезно)
+
+| weechat | option | листа опција | - | име опције (дозвољен је џокер „*”) (необавезно)
+
+| weechat | plugin | листа додатака | показивач на додатак (није обавезан) | име додатка (дозвољен је џокер „*”) (није обавезно)
+
+| weechat | proxy | листа проксија | показивач на прокси (није обавезан) | име проксија (дозвољен је џокер „*”) (није обавезно)
+
+| weechat | url_options | опције за URL | - | -
+
+| weechat | window | листа прозора | показивач на прозор (није обавезан) | „current” за текући прозор или број прозора (није обавезно)
+
+| xfer | xfer | листа xfer | показивач на xfer (није обавезан) | -
+
+|===
+// end::infolists[]
diff --git a/doc/sr/includes/autogen_api_infos.sr.adoc b/doc/sr/includes/autogen_api_infos.sr.adoc
new file mode 100644
index 000000000..96d51b26b
--- /dev/null
+++ b/doc/sr/includes/autogen_api_infos.sr.adoc
@@ -0,0 +1,164 @@
+//
+// This file is auto-generated by script docgen.py.
+// DO NOT EDIT BY HAND!
+//
+
+// tag::infos[]
+[width="100%",cols="^1,^2,6,6",options="header"]
+|===
+| Додатак | Име | Опис | Аргументи
+
+| fifo | fifo_filename | име FIFO пајпа | -
+
+| guile | guile_eval | израчунавање изворног кода | изворни кôд који треба да се изврши
+
+| guile | guile_interpreter | име интерпретера који се користи | -
+
+| guile | guile_version | верзија интерпретера која се користи | -
+
+| irc | irc_buffer | враћа показивач на бафер за IRC сервер/канал/надимак | сервер,канал,надимак (канал и надимци нису обавезни)
+
+| irc | irc_is_channel | 1 ако је стринг важеће име IRC канала за сервер | сервер,канал (сервер није обавезан)
+
+| irc | irc_is_message_ignored | 1 ако се надимак игнорише (порука се не приказује) | сервер,порука (порука представља сирову IRC message)
+
+| irc | irc_is_nick | 1 ако је стринг важеће име IRC надимка | сервер,надимак (сервер није обавезан)
+
+| irc | irc_nick | враћа тренутни надимак на серверу | име сервера
+
+| irc | irc_nick_color | враћа кôд боје надимка (*застарело* од верзије 1.5, замењено са „nick_color”) | надимак
+
+| irc | irc_nick_color_name | враћа кôд боје надимка (*застарело* од верзије 1.5, замењено са „nick_color_name”) | надимак
+
+| irc | irc_nick_from_host | враћа надимак из IRC хоста | IRC хост (као `:надимак!име@сервер.com`)
+
+| irc | irc_server_isupport | 1 ако сервер подржава ову могућност (из IRC поруке 005) | сервер,могућност
+
+| irc | irc_server_isupport_value | вредност могућности, ако је сервер подржава (из IRC поруке 005) | сервер,могућност
+
+| javascript | javascript_eval | израчунавање изворног кода | изворни кôд који треба да се изврши
+
+| javascript | javascript_interpreter | име интерпретера који се користи | -
+
+| javascript | javascript_version | верзија интерпретера која се користи | -
+
+| lua | lua_eval | израчунавање изворног кода | изворни кôд који треба да се изврши
+
+| lua | lua_interpreter | име интерпретера који се користи | -
+
+| lua | lua_version | верзија интерпретера која се користи | -
+
+| perl | perl_eval | израчунавање изворног кода | изворни кôд који треба да се изврши
+
+| perl | perl_interpreter | име интерпретера који се користи | -
+
+| perl | perl_version | верзија интерпретера која се користи | -
+
+| php | php_eval | израчунавање изворног кода | изворни кôд који треба да се изврши
+
+| php | php_interpreter | име интерпретера који се користи | -
+
+| php | php_version | верзија интерпретера која се користи | -
+
+| python | python2_bin | путања до Python 2.x интерпретера (*застарело* од верзије 2.6, скрипте смеју да користе само Python 3) | -
+
+| python | python_eval | израчунавање изворног кода | изворни кôд који треба да се изврши
+
+| python | python_interpreter | име интерпретера који се користи | -
+
+| python | python_version | верзија интерпретера која се користи | -
+
+| relay | relay_client_count | број клијената за релеј | протокол,статус (оба нису обавезна, за сваки аргумент „*” значи све; протоколи: irc, weechat; статуси: connecting, waiting_auth, connected, auth_failed, disconnected)
+
+| ruby | ruby_eval | израчунавање изворног кода | изворни кôд који треба да се изврши
+
+| ruby | ruby_interpreter | име интерпретера који се користи | -
+
+| ruby | ruby_version | верзија интерпретера која се користи | -
+
+| spell | spell_dict | листа речника раздвојених запетама који се користе у баферу | показивач на бафер („0x12345678”) или пуно име бафера („irc.libera.#weechat”)
+
+| tcl | tcl_eval | израчунавање изворног кода | изворни кôд који треба да се изврши
+
+| tcl | tcl_interpreter | име интерпретера који се користи | -
+
+| tcl | tcl_version | верзија интерпретера која се користи | -
+
+| weechat | auto_connect | 1 ако је укључено аутоматско повезивање са серверима, 0 ако је корисник то искључио (опцијом „-a” или „--no-connect”) | -
+
+| weechat | charset_internal | WeeChat интерни скуп карактера | -
+
+| weechat | charset_terminal | скуп карактера терминала | -
+
+| weechat | color_ansi_regex | POSIX проширени регуларни израз за претрагу ANSI обележавајућих (escape) низова | -
+
+| weechat | color_rgb2term | RGB боја конвертована у терминалску боју (0-255) | rgb,граница (граница није обавезна и подразумевано се поставља на 256)
+
+| weechat | color_term2rgb | терминалска боја (0-255) конвертована у RGB боју | боја (терминалска боја: 0-255)
+
+| weechat | cursor_mode | 1 ако је укључен режим померања курсора | -
+
+| weechat | date | датум/време компајлирања програма WeeChat | -
+
+| weechat | dir_separator | граничник директоријума | -
+
+| weechat | filters_enabled | 1 ако су филтери укључени | -
+
+| weechat | inactivity | неактивност тастатуре (секунди) | -
+
+| weechat | locale | локале које се користи за превод порука | -
+
+| weechat | nick_color | враћање кода боје надимка | надимак;боје (боје је необавезна листа боја раздвојених запетама које треба да се користе; за боју је дозвољена позадина у формату текст:позадина; ако су боје присутне, WeeChat опције везане за боју надимака и форсирање боја за надимке се игноришу)
+
+| weechat | nick_color_name | враћање имена боје надимка | надимак;боје (боје је необавезна листа боја раздвојених запетама које треба да се користе; за боју је дозвољена позадина у формату текст:позадина; ако су боје присутне, WeeChat опције везане за боју надимака и форсирање боја за надимке се игноришу)
+
+| weechat | pid | WeeChat PID (ID процеса) | -
+
+| weechat | term_color_pairs | број парова боја који терминал подржава | -
+
+| weechat | term_colors | број боја које подржава терминал | -
+
+| weechat | term_height | висина терминала | -
+
+| weechat | term_width | ширина терминала | -
+
+| weechat | totp_generate | генерисање Time-based One-Time Password (TOTP) | secret (у base32), timestamp (није обавезно, подразумевано је текуће време), број цифара (није обавезно, између 4 и 10, подразумевано је 6)
+
+| weechat | totp_validate | валидација Time-based One-Time Password (TOTP): 1 ако је TOTP исправна, у супротном је 0 | secret (у base32), one-time password, timestamp (није обавезно, подразумевано је текуће време), број лозинки пре/након које се тестирају (није обавезно, подразумевано је 0)
+
+| weechat | uptime | WeeChat време извршавања (формат: „дана:чч:мм:сс”) | „days” (број дана) или „seconds” (број секунди) (није обавезно)
+
+| weechat | version | верзија програма WeeChat | -
+
+| weechat | version_git | WeeChat git верзија (излаз команде „git describe” само за развојну верзију, празно за стабилну верзију) | -
+
+| weechat | version_number | верзија програма WeeChat (као број) | -
+
+| weechat | weechat_cache_dir | WeeChat кеш директоријум | -
+
+| weechat | weechat_config_dir | WeeChat конфигурациони директоријум | -
+
+| weechat | weechat_daemon | 1 ако се програм WeeChat извршава у даемон режиму (без корисничког интерфејса, у позадини) | -
+
+| weechat | weechat_data_dir | WeeChat директоријум са подацима | -
+
+| weechat | weechat_dir | WeeChat директоријум (*застарело* од верзије 3.2, замењено је са „weechat_config_dir”, „weechat_data_dir”, „weechat_cache_dir” и „weechat_runtime_dir”) | -
+
+| weechat | weechat_headless | 1 ако се програм WeeChat извршава без директног улаза/излаза | -
+
+| weechat | weechat_libdir | WeeChat „lib” директоријум | -
+
+| weechat | weechat_localedir | WeeChat „locale” директоријум | -
+
+| weechat | weechat_runtime_dir | WeeChat директоријум за време извршавања | -
+
+| weechat | weechat_sharedir | WeeChat „share” директоријум | -
+
+| weechat | weechat_site | WeeChat сајт | -
+
+| weechat | weechat_site_download | WeeChat сајт, страна за преузимање | -
+
+| weechat | weechat_upgrading | 1 ако се програм WeeChat ажурира (командом `/upgrade`) | -
+
+|===
+// end::infos[]
diff --git a/doc/sr/includes/autogen_api_infos_hashtable.sr.adoc b/doc/sr/includes/autogen_api_infos_hashtable.sr.adoc
new file mode 100644
index 000000000..0a7e10d39
--- /dev/null
+++ b/doc/sr/includes/autogen_api_infos_hashtable.sr.adoc
@@ -0,0 +1,20 @@
+//
+// This file is auto-generated by script docgen.py.
+// DO NOT EDIT BY HAND!
+//
+
+// tag::infos_hashtable[]
+[width="100%",cols="^1,^2,6,6,8",options="header"]
+|===
+| Додатак | Име | Опис | Хеш табела (улаз) | Хеш табела (излаз)
+
+| irc | irc_message_parse | парсирање IRC поруке | „message”: IRC порука, „server”: име сервера (није обавезно) | „tags”: ознаке, „message_without_tags”: поруке без ознака, „nick”: надимак, „user”: корисник, „host”: хост, „command”: команда, „channel”: канал, „arguments”: аргументи (укључујући channel), „text”: текст (на пример, корисничка порука), „pos_command”: индекс „command” поруке („-1” ако „command” није пронађена), „pos_arguments”: индекс „arguments” поруке („-1” ако „arguments” није пронађена), „pos_channel”: индекс „channel” поруке („-1” ако „channel” није пронађена), „pos_text”: индекс „text” поруке („-1” ако „text” није пронађена)
+
+| irc | irc_message_split | подела IRC поруке (подразумевано тако да стане у 512 бајтова) | „message”: IRC порука, „server”: име сервера (није обавезно) | „msg1” ... „msgN”: поруке које се шаљу (без „\r\n” на крају), „args1” ... „argsN”: аргументи порука, „count”: број порука
+
+| weechat | focus_info | враћање инфо о фокусу | „x”: x координата (стринг са целим бројем >= 0), „y”: y координата (стринг са целим бројем >= 0) | погледајте функцију „hook_focus” у API референтном приручнику за додатке
+
+| weechat | secured_data | обезбеђени подаци | - | обезбеђени подаци: имена и вредности (будите пажљиви: вредности су осетљиви подаци: НЕМОЈТЕ да их штампате/логујете било где)
+
+|===
+// end::infos_hashtable[]
diff --git a/doc/sr/includes/autogen_api_plugins_priority.sr.adoc b/doc/sr/includes/autogen_api_plugins_priority.sr.adoc
new file mode 100644
index 000000000..e55f70fdf
--- /dev/null
+++ b/doc/sr/includes/autogen_api_plugins_priority.sr.adoc
@@ -0,0 +1,21 @@
+//
+// This file is auto-generated by script docgen.py.
+// DO NOT EDIT BY HAND!
+//
+
+// tag::plugins_priority[]
+. charset (15000)
+. logger (14000)
+. exec (13000)
+. trigger (12000)
+. spell (11000)
+. alias (10000)
+. buflist (9000)
+. fifo (8000)
+. xfer (7000)
+. irc (6000)
+. relay (5000)
+. guile, javascript, lua, perl, php, python, ruby, tcl (4000)
+. script (3000)
+. fset (2000)
+// end::plugins_priority[]
diff --git a/doc/sr/includes/autogen_api_url_options.sr.adoc b/doc/sr/includes/autogen_api_url_options.sr.adoc
new file mode 100644
index 000000000..6c712fe8a
--- /dev/null
+++ b/doc/sr/includes/autogen_api_url_options.sr.adoc
@@ -0,0 +1,436 @@
+//
+// This file is auto-generated by script docgen.py.
+// DO NOT EDIT BY HAND!
+//
+
+// tag::url_options[]
+[width="100%",cols="2,^1,7",options="header"]
+|===
+| Опција | Тип ^(1)^ | Константе ^(2)^
+
+| verbose | long |
+
+| header | long |
+
+| noprogress | long |
+
+| nosignal | long |
+
+| wildcardmatch | long |
+
+| failonerror | long |
+
+| keep_sending_on_error | long |
+
+| proxy | string |
+
+| proxyport | long |
+
+| port | long |
+
+| pre_proxy | string |
+
+| httpproxytunnel | long |
+
+| interface | string |
+
+| dns_cache_timeout | long |
+
+| proxytype | long | http, socks4, socks5, socks4a, socks5_hostname, http_1_0, https
+
+| buffersize | long |
+
+| tcp_nodelay | long |
+
+| localport | long |
+
+| localportrange | long |
+
+| address_scope | long |
+
+| protocols | mask | http, https, ftp, ftps, scp, sftp, telnet, ldap, ldaps, dict, file, tftp, all, imap, imaps, pop3, pop3s, smtp, smtps, rtsp, rtmp, rtmpt, rtmpe, rtmpte, rtmps, rtmpts, gopher, smb, smbs
+
+| redir_protocols | mask | http, https, ftp, ftps, scp, sftp, telnet, ldap, ldaps, dict, file, tftp, all, imap, imaps, pop3, pop3s, smtp, smtps, rtsp, rtmp, rtmpt, rtmpe, rtmpte, rtmps, rtmpts, gopher, smb, smbs
+
+| noproxy | string |
+
+| socks5_gssapi_nec | long |
+
+| tcp_keepalive | long |
+
+| tcp_keepidle | long |
+
+| tcp_keepintvl | long |
+
+| unix_socket_path | string |
+
+| abstract_unix_socket | string |
+
+| path_as_is | long |
+
+| proxy_service_name | string |
+
+| service_name | string |
+
+| default_protocol | string |
+
+| tcp_fastopen | long |
+
+| socks5_auth | long |
+
+| haproxyprotocol | long |
+
+| doh_url | string |
+
+| netrc | long | ignored, optional, required
+
+| userpwd | string |
+
+| proxyuserpwd | string |
+
+| httpauth | mask | none, basic, digest, ntlm, any, anysafe, digest_ie, only, ntlm_wb, negotiate, gssapi, bearer
+
+| proxyauth | mask | none, basic, digest, ntlm, any, anysafe, digest_ie, only, ntlm_wb, negotiate, gssapi, bearer
+
+| netrc_file | string |
+
+| username | string |
+
+| password | string |
+
+| proxyusername | string |
+
+| proxypassword | string |
+
+| tlsauth_type | mask | none, srp
+
+| tlsauth_username | string |
+
+| tlsauth_password | string |
+
+| sasl_ir | long |
+
+| xoauth2_bearer | string |
+
+| login_options | string |
+
+| disallow_username_in_url | long |
+
+| autoreferer | long |
+
+| followlocation | long |
+
+| put | long |
+
+| post | long |
+
+| postfields | string |
+
+| referer | string |
+
+| useragent | string |
+
+| httpheader | list |
+
+| cookie | string |
+
+| cookiefile | string |
+
+| postfieldsize | long |
+
+| maxredirs | long |
+
+| httpget | long |
+
+| cookiejar | string |
+
+| http_version | long | none, 1_0, 1_1, 2_0, 2, 2tls, 2_prior_knowledge
+
+| cookiesession | long |
+
+| http200aliases | list |
+
+| unrestricted_auth | long |
+
+| postfieldsize_large | long long |
+
+| cookielist | string |
+
+| ignore_content_length | long |
+
+| accept_encoding | string |
+
+| transfer_encoding | long |
+
+| http_content_decoding | long |
+
+| http_transfer_decoding | long |
+
+| copypostfields | string |
+
+| postredir | mask | post_301, post_302
+
+| expect_100_timeout_ms | long |
+
+| headeropt | mask | unified, separate
+
+| proxyheader | list |
+
+| pipewait | long |
+
+| stream_weight | long |
+
+| request_target | string |
+
+| mail_from | string |
+
+| mail_rcpt | list |
+
+| mail_auth | string |
+
+| tftp_blksize | long |
+
+| tftp_no_options | long |
+
+| ftpport | string |
+
+| quote | list |
+
+| postquote | list |
+
+| ftp_use_epsv | long |
+
+| prequote | list |
+
+| ftp_use_eprt | long |
+
+| ftp_create_missing_dirs | long |
+
+| ftp_response_timeout | long |
+
+| ftpsslauth | long | default, ssl, tls
+
+| ftp_account | string |
+
+| ftp_skip_pasv_ip | long |
+
+| ftp_filemethod | long | multicwd, nocwd, singlecwd
+
+| ftp_alternative_to_user | string |
+
+| ftp_ssl_ccc | long | ccc_none, ccc_active, ccc_passive
+
+| dirlistonly | long |
+
+| append | long |
+
+| ftp_use_pret | long |
+
+| rtsp_request | long | options, describe, announce, setup, play, pause, teardown, get_parameter, set_parameter, record, receive
+
+| rtsp_session_id | string |
+
+| rtsp_stream_uri | string |
+
+| rtsp_transport | string |
+
+| rtsp_client_cseq | long |
+
+| rtsp_server_cseq | long |
+
+| crlf | long |
+
+| range | string |
+
+| resume_from | long |
+
+| customrequest | string |
+
+| nobody | long |
+
+| infilesize | long |
+
+| upload | long |
+
+| timecondition | long | none, ifmodsince, ifunmodsince, lastmod
+
+| timevalue | long |
+
+| transfertext | long |
+
+| filetime | long |
+
+| maxfilesize | long |
+
+| proxy_transfer_mode | long |
+
+| resume_from_large | long long |
+
+| infilesize_large | long long |
+
+| maxfilesize_large | long long |
+
+| timevalue_large | long long |
+
+| upload_buffersize | long |
+
+| timeout | long |
+
+| low_speed_limit | long |
+
+| low_speed_time | long |
+
+| fresh_connect | long |
+
+| forbid_reuse | long |
+
+| connecttimeout | long |
+
+| ipresolve | long | whatever, v4, v6
+
+| connect_only | long |
+
+| max_send_speed_large | long long |
+
+| max_recv_speed_large | long long |
+
+| timeout_ms | long |
+
+| connecttimeout_ms | long |
+
+| maxconnects | long |
+
+| use_ssl | long | none, try, control, all
+
+| resolve | list |
+
+| dns_servers | string |
+
+| accepttimeout_ms | long |
+
+| dns_interface | string |
+
+| dns_local_ip4 | string |
+
+| dns_local_ip6 | string |
+
+| connect_to | list |
+
+| happy_eyeballs_timeout_ms | long |
+
+| dns_shuffle_addresses | long |
+
+| upkeep_interval_ms | long |
+
+| sslcert | string |
+
+| sslversion | long | default, tlsv1, sslv2, sslv3, tlsv1_0, tlsv1_1, tlsv1_2, tlsv1_3, max_default, max_none, max_tlsv1_0, max_tlsv1_1, max_tlsv1_2, max_tlsv1_3
+
+| ssl_verifypeer | long |
+
+| cainfo | string |
+
+| random_file | string |
+
+| egdsocket | string |
+
+| ssl_verifyhost | long |
+
+| ssl_cipher_list | string |
+
+| sslcerttype | string |
+
+| sslkey | string |
+
+| sslkeytype | string |
+
+| sslengine | string |
+
+| sslengine_default | long |
+
+| capath | string |
+
+| ssl_sessionid_cache | long |
+
+| krblevel | string |
+
+| keypasswd | string |
+
+| issuercert | string |
+
+| crlfile | string |
+
+| certinfo | long |
+
+| gssapi_delegation | long | none, policy_flag, flag
+
+| ssl_options | long | allow_beast, no_revoke, no_backends, ok, too_late, unknown_backend
+
+| ssl_enable_alpn | long |
+
+| ssl_enable_npn | long |
+
+| pinnedpublickey | string |
+
+| ssl_verifystatus | long |
+
+| ssl_falsestart | long |
+
+| proxy_cainfo | string |
+
+| proxy_capath | string |
+
+| proxy_crlfile | string |
+
+| proxy_keypasswd | string |
+
+| proxy_pinnedpublickey | string |
+
+| proxy_sslcert | string |
+
+| proxy_sslcerttype | string |
+
+| proxy_sslkey | string |
+
+| proxy_sslkeytype | string |
+
+| proxy_sslversion | long | default, tlsv1, sslv2, sslv3, tlsv1_0, tlsv1_1, tlsv1_2, tlsv1_3, max_default, max_none, max_tlsv1_0, max_tlsv1_1, max_tlsv1_2, max_tlsv1_3
+
+| proxy_ssl_cipher_list | list |
+
+| proxy_ssl_options | long | allow_beast, no_revoke, no_backends, ok, too_late, unknown_backend
+
+| proxy_ssl_verifyhost | long |
+
+| proxy_ssl_verifypeer | long |
+
+| proxy_tlsauth_password | string |
+
+| proxy_tlsauth_type | string |
+
+| proxy_tlsauth_username | string |
+
+| tls13_ciphers | list |
+
+| proxy_tls13_ciphers | list |
+
+| ssh_auth_types | mask | none, policy_flag, flag
+
+| ssh_public_keyfile | string |
+
+| ssh_private_keyfile | string |
+
+| ssh_host_public_key_md5 | string |
+
+| ssh_knownhosts | string |
+
+| ssh_compression | long |
+
+| new_file_perms | long |
+
+| new_directory_perms | long |
+
+| telnetoptions | list |
+
+|===
+// end::url_options[]
diff --git a/doc/sr/includes/autogen_user_commands.sr.adoc b/doc/sr/includes/autogen_user_commands.sr.adoc
new file mode 100644
index 000000000..0ad722248
--- /dev/null
+++ b/doc/sr/includes/autogen_user_commands.sr.adoc
@@ -0,0 +1,3031 @@
+//
+// This file is auto-generated by script docgen.py.
+// DO NOT EDIT BY HAND!
+//
+
+// tag::irc_commands[]
+[[command_irc_admin]]
+* `+admin+`: проналажење информација о администратору сервера
+
+----
+/admin [<циљ>]
+
+циљ: име сервера
+----
+
+[[command_irc_allchan]]
+* `+allchan+`: извршавање команде на свим каналима свих повезаних сервера
+
+----
+/allchan [-current] [-exclude=<канал>[,<канал>...]] <команда>
+ [-current] -include=<канал>[,<канал>...] <команда>
+
+ -current: извршава се команда само за канале текућег сервера
+ -exclude: неки канали се изузимају (дозвољен је џокер „*”)
+ -include: узимају се у обзир само неки канали (дозвољен је џокер „*”)
+ command: команда која треба да се изврши (или текст који се шаље баферу ако команда не почиње са ’/’)
+
+Команде и аргументи се израчунавају (погледајте /help eval), замењују се следеће променљиве:
+ $server име сервера
+ $channel име канала
+ $nick надимак на серверу
+ ${irc_server.xxx} променљива xxx на серверу
+ ${irc_channel.xxx} променљива xxx на каналу
+
+Примери:
+ извршава ’/me is testing’ на свим каналима:
+ /allchan /me is testing
+ каже ’здраво’ свуда осим на #weechat:
+ /allchan -exclude=#weechat здраво
+ каже ’здраво’ свуда осим на #weechat и каналима који почињу са #linux:
+ /allchan -exclude=#weechat,#linux* здраво
+ каже ’здраво’ на свим каналима који почињу на #linux:
+ /allchan -include=#linux* здраво
+----
+
+[[command_irc_allpv]]
+* `+allpv+`: извршавање команде у свим приватним баферима свих повезаних сервера
+
+----
+/allpv [-current] [-exclude=<надимак>[,<надимак>...]] <команда>
+ [-current] -include=<надимак>[,<надимак>...] <команда>
+
+ -current: извршавање команде за приватне бафере текућег сервера
+ -exclude: неки надимци се изузимају (дозвољен је џокер „*”)
+ -include: узимају се у обзир само неки надимци (дозвољен је џокер „*”)
+ command: команда која се извршава (или текст који се шаље баферу ако команда не почиње са ’/’)
+
+Команда и аргументи се израчунавају (погледајте /help eval), замењују се следеће променљиве:
+ $server име сервера
+ $channel име канала
+ $nick надимак на серверу
+ ${irc_server.xxx} променљива xxx на серверу
+ ${irc_channel.xxx} променљива xxx на каналу
+
+Примери:
+ извршава ’/me is testing’ на свим приватним баферима:
+ /allpv /me is testing
+ каже ’здраво’ свуда осим надимку foo:
+ /allpv -exclude=foo здраво
+ каже ’здраво’ свуда осим надимку nick foo и надимцима који почињу са bar:
+ /allpv -exclude=foo,bar* здраво
+ каже ’здраво’ свим надимцима који почињу са bar:
+ /allpv -include=bar* здраво
+ затвара све приватне бафере:
+ /allpv /close
+----
+
+[[command_irc_allserv]]
+* `+allserv+`: извршавање команде на свим повезаним серверима
+
+----
+/allserv [-exclude=<сервер>[,<сервер>...]] <команда>
+ -include=<сервер>[,<сервер>...] <команда>
+
+ -exclude: неки сервери се не узимају у обзир (дозвољен је џокер „*”)
+ -include: узимају се у обзир само неки сервери (дозвољен је џокер „*”)
+ command: команда која треба да се изврши (или текст који се шаље баферу ако команда не почиње са ’/’)
+
+Команда и аргументи се израчунавају (погледајте /help eval), замењују се следеће променљиве:
+ $server име сервера
+ $nick надимак на серверу
+ ${irc_server.xxx} променљива xxx на серверу
+
+Примери:
+ мења надимак на свим серверима:
+ /allserv /nick новинадимак
+ поставља одсутност на свим серверима:
+ /allserv /away Нисам ту
+ обавља whois на сопственом надимку на свим серверима:
+ /allserv /whois $nick
+----
+
+[[command_irc_ban]]
+* `+ban+`: забрана надимака или хостова
+
+----
+/ban [<канал>] [<надимак> [<надимак>...]]
+
+ канал: име канала
+надимак: надимак или хост
+
+Без аргумента, ова команда приказује листу забрана за текући канал.
+----
+
+[[command_irc_cap]]
+* `+cap+`: преговарање могућности клијента
+
+----
+/cap ls
+ list
+ req|ack [<могућност> [<могућност>...]]
+ end
+
+ ls: исписује могућности које подржава сервер
+ list: исписује могућности које су тренутно укључене
+ req: захтева могућност
+ ack: прихвата могућности које захтевају потврду са клијентске стране
+ end: завршава преговарање о могућностима
+
+Без аргумента се шаљу „ls” и „list”.
+
+Програм WeeChat подржава следеће могућности: account-notify, away-notify, cap-notify, chghost, extended-join, invite-notify, multi-prefix, server-time, userhost-in-names.
+
+Могућности које се аутоматски укључују на серверима могу да се поставе у опцији irc.server_default.capabilities (или посебно за сваки сервер у опцији irc.server.xxx.capabilities).
+
+Примери:
+ /cap
+ /cap req multi-prefix away-notify
+----
+
+[[command_irc_connect]]
+* `+connect+`: повезивање са IRC сервер(ом/има)
+
+----
+/connect [<сервер> [<сервер>...]] [-<опција>[=<вредности>]] [-no<опција>] [-nojoin] [-switch]
+ -all|-auto|-open [-nojoin] [-switch]
+
+ сервер: име сервера које може да буде:
+ - интерно име сервера (које додаје команда /server add, препоручена употреба)
+ - имехоста/порт или IP/порт, порт је подразумевано 6667
+ - URL са форматом: irc[6][s]://[надимак[:лозинка]@]irc.example.org[:порт][/#канал1][,#канал2[...]]
+ Напомена: за адресу/IP/URL, додаје се привремени сервер (НЕ ЧУВА СЕ), погледајте /help irc.look.temporary_servers
+ опција: постављање опције за сервер (вредност може да се изостави за логичке опције)
+ nooption: постављање логичке опције на ’off’ (на пример: -nossl)
+ -all: повезивање на све сервере дефинисане у конфигурацији
+ -auto: повезивање на сервере којима је укључено аутоповезивање
+ -open: повезивање на све отворене сервере који нису тренутно повезани
+ -nojoin: не приступа се ниједном каналу (чак и када је за сервер укључено autojoin)
+ -switch: пребацивање на наредну адресу сервера
+
+Ако желите да прекинете везу са сервером или да зауставите сваки покушај успостављања везе, употребите команду /disconnect.
+
+Примери:
+ /connect libera
+ /connect irc.oftc.net/6667
+ /connect irc6.oftc.net/6667 -ipv6
+ /connect irc6.oftc.net/6697 -ipv6 -ssl
+ /connect my.server.org/6697 -ssl -password=test
+ /connect irc://nick@irc.oftc.net/#channel
+ /connect -switch
+----
+
+[[command_irc_ctcp]]
+* `+ctcp+`: слање CTCP поруке (Client-To-Client Protocol)
+
+----
+/ctcp [-server <сервер>] <циљ>[,<циљ>...] <тип> [<аргументи>]
+
+ сервер: шаље се на овај сервер (интерно име)
+ циљ: надимак или канал (’*’ = текући канал)
+ тип: CTCP тип (примери: „version”, „ping”, итд.)
+аргументи: аргументи за CTCP
+
+Примери:
+ /ctcp toto time
+ /ctcp toto version
+ /ctcp * version
+----
+
+[[command_irc_cycle]]
+* `+cycle+`: напуштање и поновно приступање каналу
+
+----
+/cycle [<канал>[,<канал>...]] [<порука>]
+
+ канал: име канала
+порука: поздравна порука (приказује се осталим корисницима)
+----
+
+[[command_irc_dcc]]
+* `+dcc+`: покретање DCC (трансфер фајла или директни разговор)
+
+----
+/dcc chat <надимак>
+ send <надимак> <фајл>
+
+надимак: надимак
+ фајл: име фајла (на локалном хосту)
+
+Примери:
+ разговор са надимком „toto”:
+ /dcc chat toto
+ слање фајла „/home/foo/bar.txt” надимку „toto”:
+ /dcc send toto /home/foo/bar.txt
+----
+
+[[command_irc_dehalfop]]
+* `+dehalfop+`: уклањање статуса полу-оператора канала надим(ку/цима)
+
+----
+/dehalfop <надимак> [<надимак>...]
+ * -yes
+
+надимак: надимак или маска (дозвољен је џокер „*”)
+ *: уклањање статуса полу-оператора канала свима осим самом себи
+----
+
+[[command_irc_deop]]
+* `+deop+`: уклањање статуса оператора канала надим(ку/цима)
+
+----
+/deop <надимак> [<надимак>...]
+ * -yes
+
+надимак: надимак или маска (дозвољен је џокер „*”)
+ *: уклањање статуса оператора канала свима осим самом себи
+----
+
+[[command_irc_devoice]]
+* `+devoice+`: уклањање права гласа надим(ку/цима)
+
+----
+/devoice <надимак> [<надимак>...]
+ * -yes
+
+надимак: надимак или маска (дозвољен је џокер „*”)
+ *: уклањање права гласа свима осим самом себи
+----
+
+[[command_irc_die]]
+* `+die+`: искључивање сервера
+
+----
+/die [<циљ>]
+
+циљ: име сервера
+----
+
+[[command_irc_disconnect]]
+* `+disconnect+`: прекидање везе са једним или са свим IRC серверима
+
+----
+/disconnect [<сервер>|-all|-pending [<разлог>]]
+
+ сервер: интерно име сервера
+ -all: прекидање везе са свим серверима
+-pending: отказивање аутоматског поновног успостављање везе са серверима са којим се тренутно поново успоставља веза
+ разлог: разлог за „quit”
+----
+
+[[command_irc_halfop]]
+* `+halfop+`: давање статуса полу-оператора канала надим(ку/цима)
+
+----
+/halfop <надимак> [<надимак>...]
+ * -yes
+
+надимак: надимак или маска (дозвољен је џокер „*”)
+ *: давање статуса полу-оператора канала свима на каналу
+----
+
+[[command_irc_ignore]]
+* `+ignore+`: игнорисање надимака/хостова са севера или канала
+
+----
+/ignore list
+ add [re:]<надимак> [<сервер> [<канал>]]
+ del <број>|-all
+
+ list: испис свих игнорисања
+ add: додавање игнорисања
+ надимак: надимак или име хоста (може да буде POSIX проширени регуларни израз ако се наведе „re:” или маска која користи „*” да замени нула или више карактера)
+ del: брисање игнорисања
+ број: број игнорисања који треба да се обрише (погледајте у листу да га пронађете)
+ -all: брисање свих игнорисања
+ сервер: интерно име сервера за који делује игнорисање
+ канал: име канала на коме делује игнорисање
+
+Напомена: регуларни израз може почети са „(?-i)” чиме постаје осетљив на разлику у величини слова.
+
+Примери:
+ игнорише надимак „toto” свуда:
+ /ignore add toto
+ игнорише хост „toto@domain.com” на libera серверу:
+ /ignore add toto@domain.com libera
+ игнорише хост „toto*@*.domain.com” на libera/#weechat:
+ /ignore add toto*@*.domain.com libera #weechat
+----
+
+[[command_irc_info]]
+* `+info+`: приказ информација које описују сервер
+
+----
+/info [<циљ>]
+
+циљ: име сервера
+----
+
+[[command_irc_invite]]
+* `+invite+`: позив надимку да приступи каналу
+
+----
+/invite <надимак> [<надимак>...] [<канал>]
+
+надимак: надимак
+ канал: име канала
+----
+
+[[command_irc_ison]]
+* `+ison+`: провера да ли се надимак тренутно налази на IRC
+
+----
+/ison <надимак> [<надимак>...]
+
+надимак: надимак
+----
+
+[[command_irc_join]]
+* `+join+`: приступ каналу
+
+----
+/join [-noswitch] [-server <сервер>] [<канал1>[,<канал2>...]] [<кључ1>[,<кључ2>...]]
+
+-noswitch: не прелази се у нови бафер
+ сервер: шаље се на овај сервер (интерно име)
+ канал: име канала којем се приступа
+ кључ: кључ за приступ каналу (канали са кључем морају бити први на листи)
+
+Примери:
+ /join #weechat
+ /join #protectedchan,#weechat key
+ /join -server libera #weechat
+ /join -noswitch #weechat
+----
+
+[[command_irc_kick]]
+* `+kick+`: избацивање корисника са канала
+
+----
+/kick [<канал>] <надимак> [<разлог>]
+
+ канал: име канала
+надимак: надимак
+ разлог: разлог избацивања (израчунава се, погледајте /help eval; специјалне променљиве ${nick} (сопствени надимак), ${target} (циљни надимак), ${channel} и ${server} се замењују својим вредностима)
+----
+
+[[command_irc_kickban]]
+* `+kickban+`: избацивање корисника са канала и забрана хоста
+
+----
+/kickban [<канал>] <надимак> [<разлог>]
+
+ канал: име канала
+надимак: надимак
+ разлог: разлог за избацивање и забрану (израчунава се, погледајте /help eval; специјалне променљиве ${nick} (сопствени надимак), ${target} (циљни надимак), ${channel} и ${server} се замењују својим вредностима)
+
+Могуће је избацивање/забрана са маском, надимак ће се издвојити из маске и заменити са „*”.
+
+Пример:
+ забрањује хост „*!*@host.com” па затим избацује „toto”:
+ /kickban toto!*@host.com
+----
+
+[[command_irc_kill]]
+* `+kill+`: затварање клијент-сервер конекције
+
+----
+/kill <надимак> [<разлог>]
+
+надимак: надимак
+ разлог: разлог
+----
+
+[[command_irc_links]]
+* `+links+`: листа свих имена сервера који су познати серверу одговарајући на упит
+
+----
+/links [[<циљ>] <сервер_маска>]
+
+ циљ: овај удаљени сервер би требало да одговори на упит
+сервер_маска: листа сервера мора да се подудара са овом маском
+----
+
+[[command_irc_list]]
+* `+list+`: листа канала и њихових тема
+
+----
+/list [-server <сервер>] [-re <регуларни_израз>] [<канал>[,<канал>...]] [<циљ>]
+
+ сервер: шаље на овај сервер (интерно име)
+регуларни_израз: POSIX проширени регуларни израз који се користи за филтрирање резултата (без разликовања величине слова, може да почне са „(?-i)” чиме се укључује разликовање величине слова)
+ канал: канал који треба да се излиста
+ циљ: име сервера
+
+Примери:
+ исписује све канале на серверу (може да буде веома споро на великим мрежама):
+ /list
+ исписује канал #weechat:
+ /list #weechat
+ исписује све канале који почињу на „#weechat” (може да буде веома споро на великим мрежама):
+ /list -re #weechat.*
+----
+
+[[command_irc_lusers]]
+* `+lusers+`: креирање статистике о величини IRC мреже
+
+----
+/lusers [<маска> [<циљ>]]
+
+маска: само сервери који се подударају са маском
+ циљ: сервер за прослеђивање захтева
+----
+
+[[command_irc_map]]
+* `+map+`: приказ графичке мапе IRC мреже
+
+----
+----
+
+[[command_irc_me]]
+* `+me+`: слање CTCP акције текућем каналу
+
+----
+/me <порука>
+
+порука: порука која се шаље
+----
+
+[[command_irc_mode]]
+* `+mode+`: измена режима канала или корисника
+
+----
+/mode [<канал>] [+|-]o|p|s|i|t|n|m|l|b|e|v|k [<аргументи>]
+ <надимак> [+|-]i|s|w|o
+
+режими канала:
+ канал: име канала који се модификује (подразумевано је то текући)
+ o: давање/одузимање привилегија оператора канала
+ p: заставица приватног канала
+ s: заставица тајног канала
+ i: заставица канала само-уз-позив
+ t: заставица да тему канала може да постави само оператор
+ n: забрањене су поруке на каналу од клијената који су ван
+ m: модерисани канал
+ l: постављање ограничења броја корисника канала
+ b: постављање маске забране којом се брани приступ одређеним корисницима
+ e: постављање маске изузетка
+ v: давање/одузимање могућности да се говори на модерисаном каналу
+ k: постављање кључа за канал (лозинка)
+кориснички режими:
+ надимак: надимак који се модификује
+ i: корисник се маркира као невидљив
+ s: корисник се маркира за примање серверских обавештења
+ w: корисник прима wallops
+ o: заставица оператора
+
+Листа режима није потпуна, требало би да прочитате документацију свог сервера ако желите да сазнате све доступне режиме.
+
+Примери:
+ заштита теме на каналу #weechat:
+ /mode #weechat +t
+ постаје се невидљив на серверу:
+ /mode nick +i
+----
+
+[[command_irc_motd]]
+* `+motd+`: враћање „Message Of The Day” (поруке дана)
+
+----
+/motd [<циљ>]
+
+циљ: име сервера
+----
+
+[[command_irc_msg]]
+* `+msg+`: слање поруке надимку или каналу
+
+----
+/msg [-server <сервер>] <циљ>[,<циљ>...] <текст>
+
+сервер: слање на овај сервер (интерно име)
+ циљ: надимак или канал (може бити и маска, ’*’ = текући канал)
+ текст: текст који се шаље
+----
+
+[[command_irc_names]]
+* `+names+`: листа надимака на каналима
+
+----
+/names [<канал>[,<канал>...]]
+
+канал: име канала
+----
+
+[[command_irc_nick]]
+* `+nick+`: измена текућег надимка
+
+----
+/nick [-all] <надимак>
+
+ -all: нови надимак се поставља на све повезане сервере
+надимак: нови надимак
+----
+
+[[command_irc_notice]]
+* `+notice+`: слање поруке обавештења кориснику
+
+----
+/notice [-server <сервер>] <циљ> <текст>
+
+сервер: шаље се на овај сервер (интерно име)
+ циљ: надимак или име канала
+ текст: текст који се шаље
+----
+
+[[command_irc_notify]]
+* `+notify+`: додавање обавештења присуства или одсуства надимака на серверима
+
+----
+/notify add <надимак> [<сервер> [-away]]
+ del <надимак>|-all [<сервер>]
+
+ add: додавање обавештења
+надимак: надимак
+ сервер: интерно име сервера (подразумевано је то текући сервер)
+ -away: обавештавање када се порука одсуства измени (извршавајући whois над надимком)
+ del: брисање обавештења
+ -all: брисање свих обавештења
+
+Без аргумента ова команда приказује обавештења за текући сервер (или за све сервере ако се команда зада у основном баферу).
+
+Примери:
+ обавештавање када „toto” приступи/напусти текући сервер:
+ /notify add toto
+ обавештавање када „toto” приступи/напусти libera сервер:
+ /notify add toto libera
+ обавештавање када је „toto” одсутан или када се врати на libera сервер:
+ /notify add toto libera -away
+----
+
+[[command_irc_op]]
+* `+op+`: давање статуса оператора канала надим(ку/цима)
+
+----
+/op <надимак> [<надимак>...]
+ * -yes
+
+надимак: надимак или маска (дозвољен је џокер „*”)
+ *: давање статуса оператора канала свима на каналу
+----
+
+[[command_irc_oper]]
+* `+oper+`: узимање операторских привилегија
+
+----
+/oper <корисник> <лозинка>
+
+корисник: корисник
+ лозинка: лозинка
+----
+
+[[command_irc_part]]
+* `+part+`: напуштање канала
+
+----
+/part [<канал>[,<канал>...]] [<порука>]
+
+ канал: име канала који се напушта
+порука: поздравна порука (приказује се осталим корисницима)
+----
+
+[[command_irc_ping]]
+* `+ping+`: слање пинга серверу
+
+----
+/ping <циљ1> [<циљ2>]
+
+циљ1: сервер
+циљ2: пинг се прослеђује овом серверу
+----
+
+[[command_irc_pong]]
+* `+pong+`: одговор на пинг поруку
+
+----
+/pong <даемон> [<даемон2>]
+
+ даемон: даемон који је одговорио на Пинг поруку
+даемон2: порука се прослеђује овом даемону
+----
+
+[[command_irc_query]]
+* `+query+`: слање приватне поруке надимку
+
+----
+/query [-noswitch] [-server <сервер>] <надимак>[,<надимак>...] [<текст>]
+
+-noswitch: не прелази се на нови бафер
+ сервер: шаље се на овај сервер (интерно име)
+ надимак: надимак
+ текст: текст који се шаље
+----
+
+[[command_irc_quiet]]
+* `+quiet+`: ућуткивање надимака или хостова
+
+----
+/quiet [<канал>] [<надимак> [<надимак>...]]
+
+ канал: име канала
+надимак: надимак или хост
+
+Без аргумента ова команда приказује листу ућутканих за текући канал.
+----
+
+[[command_irc_quote]]
+* `+quote+`: слање сирових података серверу, без парсирања
+
+----
+/quote [-server <сервер>] <подаци>
+
+сервер: шаље се на овај сервер (интерно име)
+подаци: сирови подаци који се шаљу
+----
+
+[[command_irc_reconnect]]
+* `+reconnect+`: поновно повезивање са сервер(ом/има)
+
+----
+/reconnect <сервер> [<сервер>...] [-nojoin] [-switch]
+ -all [-nojoin] [-switch]
+
+ сервер: сервер на који се поновно повезује (интерно име)
+ -all: поновно повезивање са свим серверима
+-nojoin: не приступа се ниједном каналу (чак и када је на серверу укључено autojoin)
+-switch: прелазак на наредну адресу сервера
+----
+
+[[command_irc_rehash]]
+* `+rehash+`: налог серверу да поново учита свој конфигурациони фајл
+
+----
+/rehash [<опција>]
+
+опција: додатна опција, за неке сервере
+----
+
+[[command_irc_remove]]
+* `+remove+`: форсирање да корисник напусти канал
+
+----
+/remove [<канал>] <надимак> [<разлог>]
+
+ канал: име канала
+надимак: надимак
+ разлог: разлог избацивања (специјалне променљиве $nick, $channel и $server се замењују својим вредностима)
+----
+
+[[command_irc_restart]]
+* `+restart+`: налог серверу да се поново покрене
+
+----
+/restart [<циљ>]
+
+циљ: име сервера
+----
+
+[[command_irc_sajoin]]
+* `+sajoin+`: форсирање да корисник приступи канал(у/има)
+
+----
+/sajoin <надимак> <канал>[,<канал>...]
+
+надимак: надимак
+ канал: име канала
+----
+
+[[command_irc_samode]]
+* `+samode+`: измена режима на каналу, без поседовања статуса оператора
+
+----
+/samode [<канал>] <режим>
+
+канал: име канала
+режим: режим за канал
+----
+
+[[command_irc_sanick]]
+* `+sanick+`: форсирање да корисник употреби други надимак
+
+----
+/sanick <надимак> <нови_надимак>
+
+ надимак: надимак
+нови_надимак: нови надимак
+----
+
+[[command_irc_sapart]]
+* `+sapart+`: форсирање да корисник напусти канал(е)
+
+----
+/sapart <надимак> <канал>[,<канал>...]
+
+надимак: надимак
+ канал: име канала
+----
+
+[[command_irc_saquit]]
+* `+saquit+`: форсирање да корисник напусти сервер уз разлог
+
+----
+/saquit <надимак> <разлог>
+
+надимак: надимак
+ разлог: разлог
+----
+
+[[command_irc_server]]
+* `+server+`: испис, додавање или уклањање IRC сервера
+
+----
+/server list|listfull [<име>]
+ add <име> <имехоста>[/<порт>] [-temp] [-<опција>[=<вредност>]] [-no<опција>]
+ copy|rename <име> <ново_име>
+ reorder <име> [<име>...]
+ open <име>|-all [<име>...]
+ del|keep <име>
+ deloutq|jump
+ raw [<филтер>]
+
+ list: листа сервера (без аргумента се приказује ова листа)
+listfull: листа сервера са детаљним инфо за сваки сервер
+ add: додавање новог сервера
+ име: име сервера, за интерну употребу и за приказ; ово име се користи за повезивање на сервер (/connect име) и за постављање опција сервера: irc.server.име.xxx
+имехоста: име или IP адреса сервера, са необавезним портом (подразумевано: 6667), више адреса може да се раздвоји запетама
+ -temp: додавање привременог сервера (који се не чува)
+ опција: постављање опције за сервер (вредност може да се изостави за логичке опције)
+noопција: постављање логичке опције на ’off’ (на пример: -nossl)
+ copy: прављење дупликата сервера
+ rename: промена имена серверу
+ reorder: промена редоследа сервера у листи
+ open: отварање бафера за сервер без успостављања везе
+ keep: сервер сер чува у конфигурационом фајлу (само за привремене сервере)
+ del: брисање сервера
+ deloutq: брисање порука из излазног реда за све сервере (све поруке које програм WeeChat тренутно шаље)
+ jump: скок на серверски бафер
+ raw: отварање бафера са сировим IRC подацима
+ филтер: поставља нови филтер којим се приказују само поруке које га задовољавају (овај филтер такође може да се користи као и улаз у бафер сирових IRC података); дозвољени су следећи формати:
+ * приказ свих порука (нема филтрирања)
+ xxx приказ само порука које садрже „xxx”
+ s:xxx приказ само порука за сервер „xxx”
+ f:xxx приказ само порука са заставицом: recv (порука је примљена), sent (порука је послата), modified (порука је измењена модификатором), redirected (порука је преусмерена)
+ m:xxx приказ само IRC команде „xxx”
+ c:xxx приказ само порука које се подударају са израчунатим условом „xxx”, користећи следеће променљиве: излаз функције irc_message_parse (као nick, command, channel, text, итд., погледајте функцију info_get_hashtable у референтном приручнику API додатака да видите комплетну листу променљивих), date (формат: „гггг-мм-дд чч:мм:сс”), server, recv, sent, modified, redirected
+
+Примери:
+ /server listfull
+ /server add libera chat.libera.net
+ /server add libera chat.libera.net/6697 -ssl -autoconnect
+ /server add chatspike irc.chatspike.net/6667,irc.duckspike.net/6667
+ /server copy libera libera-test
+ /server rename libera-test libera2
+ /server reorder libera2 libera
+ /server del libera
+ /server deloutq
+ /server raw
+ /server raw s:libera
+ /server raw c:${recv} && ${command}==PRIVMSG && ${nick}==foo
+----
+
+[[command_irc_service]]
+* `+service+`: регистрација новог сервиса
+
+----
+/service <надимак> <резервисано> <дистрибуција> <тип> <резервисано> <инфо>
+
+дистрибуција: видљивост сервиса
+ тип: резервисано за будућу употребу
+----
+
+[[command_irc_servlist]]
+* `+servlist+`: листа сервиса који су тренутно повезани на мрежу
+
+----
+/servlist [<маска> [<тип>]]
+
+маска: приказују се само сервиси који се подударају са овом маском
+ тип: приказују се само сервиси овог типа
+----
+
+[[command_irc_squery]]
+* `+squery+`: достављање поруке сервису
+
+----
+/squery <сервис> <текст>
+
+сервис: име сервиса
+ текст: текст који се шаље
+----
+
+[[command_irc_squit]]
+* `+squit+`: прекид серверских веза
+
+----
+/squit <циљ> <коментар>
+
+ циљ: име сервера
+коментар: коментар
+----
+
+[[command_irc_stats]]
+* `+stats+`: упит статистике о серверу
+
+----
+/stats [<упит> [<циљ>]]
+
+упит: c/h/i/k/l/m/o/y/u (погледајте RFC1459)
+ циљ: име сервера
+----
+
+[[command_irc_summon]]
+* `+summon+`: слање учтиве поруке корисницима који су на хосту на којем се извршава IRC сервер да се придруже IRC-у
+
+----
+/summon <коринсик> [<циљ> [<канал>]]
+
+корисник: име корисника
+ циљ: име сервера
+ канал: име канала
+----
+
+[[command_irc_time]]
+* `+time+`: упит локалног времена од сервера
+
+----
+/time [<циљ>]
+
+циљ: време се тражи од наведеног сервера
+----
+
+[[command_irc_topic]]
+* `+topic+`: преузимање/постављање теме канала
+
+----
+/topic [<канал>] [<тема>|-delete]
+
+ канал: име канала
+ тема: нова тема
+-delete: брисање теме канала
+----
+
+[[command_irc_trace]]
+* `+trace+`: проналажење руте до одређеног сервера
+
+----
+/trace [<циљ>]
+
+циљ: име сервера
+----
+
+[[command_irc_unban]]
+* `+unban+`: уклањање забране надимцима или хостовима
+
+----
+/unban [<канал>] <надимак>|<број> [<надимак>|<број>...]
+
+ канал: име канала
+надимак: надимак или хост
+ број: број забране (као што га исписује команда /ban)
+----
+
+[[command_irc_unquiet]]
+* `+unquiet+`: уклањање ућуткивања надимака или хостова
+
+----
+/unquiet [<канал>] <надимак>|<број> [<надимак>|<број>...]
+
+ канал: име канала
+надимак: надимак или хост
+ број: број ућуткивања (као што га приказује команда /quiet)
+----
+
+[[command_irc_userhost]]
+* `+userhost+`: враћање листе информација о надимцима
+
+----
+/userhost <надимак> [<надимак>...]
+
+надимак: надимак
+----
+
+[[command_irc_users]]
+* `+users+`: листа корисника који су улоговани на сервер
+
+----
+/users [<циљ>]
+
+циљ: име сервера
+----
+
+[[command_irc_version]]
+* `+version+`: враћање инфо о верзији за надимак или сервер (тренутни или наведен)
+
+----
+/version [<циљ>|<надимак>]
+
+ циљ: име сервера
+надимак: надимак
+----
+
+[[command_irc_voice]]
+* `+voice+`: давање гласа надим(ку/цима)
+
+----
+/voice <надимак> [<надимак>...]
+ * -yes
+
+надимак: надимак или маска (дозвољен је џокер „*”)
+ *: давање гласа свима на каналу
+----
+
+[[command_irc_wallchops]]
+* `+wallchops+`: слање обавештења операторима канала
+
+----
+/wallchops [<канал>] <текст>
+
+канал: име канала
+текст: текст који се шаље
+----
+
+[[command_irc_wallops]]
+* `+wallops+`: слање поруке свим тренутно повезаним корисницима који имају за себе постављен кориснички режим ’w’
+
+----
+/wallops <текст>
+
+текст: текст који се шаље
+----
+
+[[command_irc_who]]
+* `+who+`: генерисање упита који враћа листу информација
+
+----
+/who [<маска> [o]]
+
+маска: само информације које се подударају са овом маском
+ o: враћају се само оператори сагласно са наведеном маском
+----
+
+[[command_irc_whois]]
+* `+whois+`: упит информација о корисни(ку/цима)
+
+----
+/whois [<циљ>] [<надимак>[,<надимак>...]]
+
+ циљ: име сервера
+надимак: надимак (може да буде и маска)
+
+Без аргумента, ова команда ће извршити whois над:
+- вашим сопственим надимком ако је бафер сервер/канал
+- удаљеним надимком ако је бафер приватни.
+
+Ако је опција irc.network.whois_double_nick укључена, шаљу се два надимка (ако је дат само један надимак), како би се у одговору добило време празног хода.
+----
+
+[[command_irc_whowas]]
+* `+whowas+`: упит информација о надимку који више не постоји
+
+----
+/whowas <надимак>[,<надимак>...] [<број> [<циљ>]]
+
+надимак: надимак
+ број: колико одговора треба да се врати (пуна претрага ако је број негативан)
+ циљ: одговор би требало да задовољава ову маску
+----
+// end::irc_commands[]
+
+// tag::alias_commands[]
+[[command_alias_alias]]
+* `+alias+`: исписује, додаје или уклања алијасе команди
+
+----
+/alias list [<алијас>]
+ add <алијас> [<команда>[;<команда>...]]
+ addcompletion <довршавање> <алијас> [<команда>[;<команда>...]]
+ del <алијас> [<алијас>...]
+
+ list: исписује алијасе (без аргумента, приказује се ова листа)
+ add: додавање алијаса
+addcompletion: додавање алијаса са кориснички дефинисаним довршавањем
+ del: брисање алијаса
+ completion: довршавање за алијас: довршавање се подразумевано врши са target командом
+ напомена: за довршавање постојеће команде можете да употребите %%команда
+ алијас: име алијаса
+ команда: име команде са аргументима (више команди може да се раздвоји тачка запетама)
+
+Напомена: у команди се замењују специјалне променљиве:
+ $n: аргумент ’n’ (између 1 и 9)
+ $-m: аргументи од 1 до ’m’
+ $n-: аргументи од ’n’ до последњег
+ $n-m: аргументи од ’n’ до ’m’
+ $*: сви аргументи
+ $~: последњи аргумент
+ $var: где је „var” локална променљива или бафер (погледајте /buffer listvar)
+ примери: $nick, $channel, $server, $plugin, $name
+
+Примери:
+ алијас /split на поделу прозора по хоризонтали:
+ /alias add split /window splith
+ алијас /hello да се каже „hello” на свим каналима осим на #weechat:
+ /alias add hello /allchan -exclude=#weechat hello
+ алијас /forcejoin да пошаље IRC команду „forcejoin” са довршавањем /sajoin:
+ /alias addcompletion %%sajoin forcejoin /quote forcejoin
+----
+// end::alias_commands[]
+
+// tag::weechat_commands[]
+[[command_weechat_away]]
+* `+away+`: поставља или уклања статус одсутности
+
+----
+/away [-all] [<порука>]
+
+ -all: поставља или уклања статус одсутности за све повезане сервере
+порука: порука одсутности (ако се не наведе, статус одсутности се уклања)
+----
+
+[[command_weechat_bar]]
+* `+bar+`: управљање тракама
+
+----
+/bar list|listfull|listitems
+ add <име> <тип>[,<услови>] <позиција> <величина> <граничник> <ставка1>[,<ставка2>...]
+ default [input|title|status|nicklist]
+ del <име>|-all
+ set <име> <опција> <вредност>
+ hide|show|toggle <име>
+ scroll <име> <прозор> <скрол_вредн>
+
+ list: приказује све траке
+ listfull: приказује све траке (детаљно)
+ listitems: приказује све ставке траке
+ add: додаје нову траку
+ име: име траке (мора бити јединствено)
+ тип: root: ван прозора,
+ window: унутар прозора, са необавезним условима (погледајте испод)
+ услови: услови под којима се исписује трака:
+ active: на активном прозору
+ inactive: на неактивним прозорима
+ nicklist: на прозорима са листом надимака
+ други услов: погледајте /help weechat.bar.xxx.conditions и /help eval
+ без услова, трака се приказује увек
+ позиција: bottom, top, left или right
+ величина: величина траке (у карактерима)
+ граничник: 1 ако желите да се користи граничник (линија), 0 или ништа значи без граничника
+ ставка1,...: ставке за ову траку (ставке могу да се раздвоје зарезом (за размак између ставки) или „+” (слепљене ставке))
+ default: креира се подразумевана трака (све подразумеване траке у случају да није задато име)
+ del: брише траку (или све траке са -all)
+ set: поставља вредност особине траке
+ опција: опција која се мења (за листу опција, погледајте /set weechat.bar.<иметраке>.*)
+ вредност: нова вредност опције
+ hide: скрива траку
+ show: приказује скривену траку
+ toggle: скрива/приказује траку
+ scroll: трака се скролује
+ прозор: број прозора (употребите ’*’ за текући прозор или за root траке)
+ скрол_вредн: вредност за скроловање: ’x’ или ’y’ (необавезно), иза којег следи ’+’, ’-’, ’b’ (beginning - почетак) или ’e’ (end - крај), вредност (за +/-), и необавезно % (за скроловање по проценту ширине/висине, иначе је вредност број карактера)
+
+Примери:
+ креира траку са временом, бројем бафера + именом, и довршавањем:
+ /bar add mybar root bottom 1 0 [time],buffer_number+:+buffer_name,completion
+ сакрива траку:
+ /bar hide mybar
+ скролује листу надимака 10 линија наниже у текућем баферу:
+ /bar scroll nicklist * y+10
+ скролује на крај листе надимака у текућем баферу:
+ /bar scroll nicklist * ye
+----
+
+[[command_weechat_buffer]]
+* `+buffer+`: управљање баферима
+
+----
+/buffer list
+ add [-free] [-switch] <име>
+ clear [<број>|<име>|-merged|-all [<број>|<име>...]]
+ move <број>|-|+
+ swap <број1>|<име1> [<број2>|<име2>]
+ cycle <број>|<име> [<број>|<име>...]
+ merge <број>|<име>
+ unmerge [<број>|-all]
+ hide [<број>|<име>|-all [<број>|<име>...]]
+ unhide [<број>|<име>|-all [<број>|<име>...]]
+ renumber [<број1> [<број2> [<старт>]]]
+ close [<n1>[-<n2>]|<име>...]
+ notify [<ниво>]
+ listvar [<број>|<име>]
+ setvar <име> [<вредн>]
+ delvar <име>
+ set <особина> [<вредн>]
+ get <особина>
+ <број>|-|+|<име>
+
+ list: листа бафера (без аргумента, исписује се ова листа)
+ add: додаје нови бафер (може да се затвори са „/buffer close” или уносом „q”)
+ clear: брише садржај бафера (број за бафер, -merged за спојене бафере, -all за све бафере, или ништа за текући бафер)
+ move: помера бафер у листи (може бити и релативно, на пример -1); „-” = помери на први број бафера, „+” = помери на последњи број бафера + 1
+ swap: замењује два бафера (замењује са текућим бафером ако се зада само један број/име)
+ cycle: скаче у круг по листи бафера
+ merge: спаја текући бафер са другим бафером (простор разговора ће бити мешавина оба бафера)
+ (ctrl-x подразумевано пребацује између спојених бафера)
+ unmerge: раздваја спојени бафер од осталих бафера који имају исти број
+ hide: скрива бафер
+ unhide: открива бафер
+renumber: ренумерише бафере (ради само ако је искључена опција weechat.look.buffer_auto_renumber)
+ close: затвара бафер (број/опсег или име није обавезно)
+ notify: приказује или поставља ниво обавештавања за текући бафер: овај ниво одређује да ли се бафер поставља на врућу листу или не:
+ none: никада
+ highlight: само за истицања
+ message: за поруке од корисника + истицања
+ all: све поруке
+ reset: ресет на подразумевану вредност (all)
+ listvar: приказује локалне променљиве у баферу
+ setvar: поставља локалну променљиву у текући бафер
+ delvar: брише локалну променљиву из текућег бафера
+ set: поставља особину текућег бафера
+ get: приказује особину текућег бафера
+ број: скок на бафер са бројем, могући префикси:
+ ’+’: релативни скок, број се додаје на текући
+ ’-’: релативни скок, број се одузима од текућег
+ ’*’: скок на број, уз употребу опције „weechat.look.jump_current_to_previous_buffer”
+ -: скок на први број бафера
+ +: скок на последњи број бафера
+ име: скок на бафер под (делимичним) именом
+
+Примери:
+ брише текући бафер:
+ /buffer clear
+ прелази на бафер под бројем 5:
+ /buffer move 5
+ замењује бафер 1 са 3:
+ /buffer swap 1 3
+ замењује бафер #weechat са текућим бафером:
+ /buffer swap #weechat
+ скаче на #chan1, #chan2, #chan3 па у круг:
+ /buffer cycle #chan1 #chan2 #chan3
+ спајање са основним бафером:
+ /buffer merge 1
+ спајање са #weechat бафером:
+ /buffer merge #weechat
+ раздвајање бафера:
+ /buffer unmerge
+ затвара текући бафер:
+ /buffer close
+ затвара бафере од 5 до 7:
+ /buffer close 5-7
+ скок на #weechat:
+ /buffer #weechat
+ скок на следећи бафер:
+ /buffer +1
+ скок на бафер под последњим бројем:
+ /buffer +
+----
+
+[[command_weechat_color]]
+* `+color+`: дефинисање алијаса боја и приказивање палете боја
+
+----
+/color alias <боја> <име>
+ unalias <боја>
+ reset
+ term2rgb <боја>
+ rgb2term <rgb> [<лимит>]
+ -o
+
+ alias: додаје алијас за боју
+ unalias: брише алијас
+ color: број боје (веће или једнако од 0, макс зависи од терминала, обично 63 или 255)
+ име: име алијаса за боју (на пример: „orange”)
+ reset: ресетује све парове боја (потребно је када више нема доступних парова боја и искључено је аутоматско ресетовање, погледајте опцију „weechat.look.color_pairs_auto_reset”)
+term2rgb: конвертује терминал боју (0-255) у RGB боју
+rgb2term: конвертује RGB боју у терминал боју (0-255)
+ лимит: број боја које могу да се користе у табели терминала (почевши од 0); подразумевано је 256
+ -o: шаље информације о терминалу/бојама у текући бафер као унос
+
+Без аргумента, ова команда приказује боје у новом баферу.
+
+Примери:
+ додаје алијас „orange” за боју 214:
+ /color alias 214 orange
+ брише боју 214:
+ /color unalias 214
+----
+
+[[command_weechat_command]]
+* `+command+`: покреће експлицитну WeeChat или команду додатка
+
+----
+/command [-buffer <име>] <додатак> <команда>
+
+ -buffer: извршава команду у овом баферу
+ додатак: извршава команду из овог додатка; ’core’ за WeeChat команду, ’*’ за аутоматски додатак (зависи од бафера у којем се команда извршава)
+ команда: команда која се извршава (аутоматски се додаје ’/’ ако се не наведе на почетку команде)
+----
+
+[[command_weechat_cursor]]
+* `+cursor+`: слободни померај курсора по екрану у циљу извршавања акција над одређеним површинама екрана
+
+----
+/cursor go chat|<трака>|<x>,<y>
+ move up|down|left|right|area_up|area_down|area_left|area_right
+ stop
+
+ go: помера курсора на површину разговора, траку (помоћу имена траке) или координате „x,y”
+move: помера курсор по смеру
+stop: зауставља режим померања курсора
+
+Без аргумента, ова команда мења стање режима померања курсора.
+
+Када је укључен миш (погледајте /help mouse), клик средњим тастером ће подразумевано да покрене режим померања курсора у тачки на коју се кликне.
+
+Подразумевани тастери у режиму померања курсора на порукама разговора:
+ m цитирање поруке
+ q цитирање префикса + поруке
+ Q цитирање времена + префикса + поруке
+
+Подразумевани тастеру у режиму померања курсора на листи надимака:
+ b забрана надимка (/ban)
+ k избацивање надимка (/kick)
+ K избацивање и забрана надимка (/kickban)
+ q отвара упит са надимком (/query)
+ w тражење информација о кориснику (/whois)
+
+Остали подразумевани тастери у режиму померања курсора:
+ стрелица помера курсор
+ alt+стрелица помера курсор на следећу површину
+ ентер напуштање режима померања курсора
+
+Пример:
+ одлазак на листу надимака:
+ /cursor go nicklist
+ одлазак на координате x=10, y=5:
+ /cursor go 10,5
+----
+
+[[command_weechat_debug]]
+* `+debug+`: дибаг функције
+
+----
+/debug list
+ set <додатак> <ниво>
+ dump [<додатак>]
+ buffer|color|infolists|memory|tags|term|windows
+ mouse|cursor [verbose]
+ hdata [free]
+ time <команда>
+
+ list: исписује додатке са дибаг нивоима
+ set: поставља дибаг ниво за додатак
+ додатак: име додатка („core” за WeeChat језгро)
+ ниво: дибаг ниво за додатак (0 = искључује дибаг)
+ dump: чува садржај меморије у WeeChat лог фајл (исти садржај се записује када се програм WeeChat сруши)
+ buffer: уписује у лог фајл садржај бафера као хексадецималне вредности
+ color: приказује инфо о тренутним паровима боја
+ cursor: пребацује дибаг за режим померања курсора
+ dirs: исписује директоријуме
+ hdata: исписује инфо о hdata (са free: уклања све hdata из меморије)
+ hooks: исписује инфо о кукама
+infolists: исписује инфо о инфолистама
+ libs: исписује инфо о коришћеним спољним библиотекама
+ memory: исписује инфо о употреби меморије
+ mouse: пребацује дибаг за миша
+ tags: исписује ознаке за линије
+ term: исписује инфо о терминалу
+ windows: исписује стабло прозора
+ time: мери време извршавања команде или слања текста текућем баферу
+----
+
+[[command_weechat_eval]]
+* `+eval+`: израчунавање израза
+
+----
+/eval [-n|-s] [-d] <израз>
+ [-n] [-d [-d]] -c <израз1> <оператор> <израз2>
+
+ -n: приказује резултат и не шаље га у бафер (дибаг режим)
+ -s: дели израз пре израчунавања (многе команде могу да се раздвоје са тачка зарезима)
+ -d: приказује дибаг излаз након израчунавања (са два -d: детаљнији дибаг)
+ -c: израчунава као услов: користе се оператори и заграде, враћа логичку вредност („0” или „1”)
+ израз: израз који се израчунава, променљиве у формату ${променљива} се замењују (погледајте испод); више команди може да се раздвоји са тачка зарезима
+ оператор: логички или оператор поређења:
+ - логички оператори:
+ && логичко „и”
+ || логичко „или”
+ - оператори поређења:
+ == једнако
+ != није једнако
+ <= мање или једнако
+ < мање
+ >= веће или једнако
+ > веће
+ =~ подудара се са POSIX проширеним регуларним изразом
+ !~ НЕ подудара се са POSIX проширеним регуларним изразом
+ ==* је маска подударања, разликује величину слова (дозвољен је џокер „*”)
+ !!* НИЈЕ маска подударања, разликује величину слова (дозвољен је џокер „*”)
+ =* је маска подударања, не разликује величину слова (дозвољен је џокер „*”)
+ !* НИЈЕ маска подударања, не разликује величину слова (дозвољен је џокер „*”)
+ ==- је укључено, разликује величину слова
+ !!- НИЈЕ укључено, разликује величину слова
+ =- је укључено, не разликује величину слова
+ !- НИЈЕ укључено, не разликује величину слова
+
+Сматра се да је израз „true” ако није NULL, није празан и различит је од „0”.
+Поређење се врши употребом бројева у покретном зарезу ако су два израза важећи бројеви, у једном од следећих формата:
+ - целобројни (примери: 5, -7)
+ - број у покретном зарезу (примери: 5.2, -7.5, 2.83e-2)
+ - хексадецимални број (примери: 0xA3, -0xA3)
+Ако желите да форсирате поређење стрингова, можете да додате знаке навода око сваког израза, на пример:
+ 50 > 100 ==> 0
+ "50" > "100" ==> 1
+
+У изразима се замењују неке променљиве, користећи формат ${променљива}, променљива може да буде, према редоследу приоритета:
+ 1. сам стринг без израчунавања (формат: „raw:xxx”)
+ 2. израчунати под-стринг (формат: „eval:xxx”)
+ 3. израчунати услов (формат: „eval_cond:xxx”)
+ 4. стринг са означеним карактерима (формат: „esc:xxx” или „\xxx”)
+ 5. стринг са карактерима за сакривање (формат: „hide:кар,стринг”)
+ 6. стринг са највише карактера (формат: „cut:макс,суфикс,стринг” или „cut:+макс,суфикс,стринг")
+ или макс број карактера који се приказује на екрану (формат: „cutscr:макс,суфикс,стринг” или „cutscr:+макс,суфикс,стринг”)
+ 7. обрнути стринг (формат: „rev:xxx” или „revscr:xxx”)
+ 8. поновљени стринг (формат: „repeat:број,стринг”)
+ 9. дужина стринга (формат: „length:xxx” или „lengthscr:xxx”)
+ 10. боја (формат: „color:xxx”, погледајте „Референтни приручник API додатака”, функција „color”)
+ 11. модификатор (формат: „modifier:име,подаци,стринг”)
+ 12. инфо (формат: „info:име,аргументи”, аргументи нису обавезни)
+ 13. base 16/32/64 шифриран/дешифрован стринг (формат: „base_encode:основа,xxx” или „base_decode:основа,xxx”)
+ 14. текући датум/време (формат: „date” или „date:формат”)
+ 15. променљива окружења (формат: „env:XXX”)
+ 16. тернарни оператор (формат: „if:услов?вредност_ако_је_тачно:вредност_ако_је_нетачно”)
+ 17. резултат израза са заградама и операторима + - * / // % ** (формат: „calc:xxx”)
+ 18. преведени стринг (формат: „translate:xxx”)
+ 19. опција (формат: „фајл.секција.опција”)
+ 20. локална променљива у баферу
+ 21. hdata име/променљива (вредност се аутоматски конвертује у стринг), „window” и „buffer” подразумевано показују на текући прозор/бафер.
+Формат за hdata може да буде једно од следећег:
+ hdata.пром1.пром2...: почиње са hdata (показивач мора да буде познат), и пита променљиве једну за другом (могу да следе и остала hdata)
+ hdata[листа].пром1.пром2...: почиње са hdata користећи листу, на пример:
+ ${buffer[gui_buffers].full_name}: пуно име првог бафера у увезаној листи бафера
+ ${plugin[weechat_plugins].name}: име првог бафера у увезаној листи додатака
+ hdata[показивач].пром1.пром2...: почиње са hdata користећи показивач, на пример:
+ ${buffer[0x1234abcd].full_name}: пуно име бафера са овим показивачем (може да се користи у окидачима)
+ ${buffer[my_pointer].full_name}: пуно име бафера са овим именом показивача (може да се користи у окидачима)
+У вези имена hdata и променљивих, молим вас да погледате „Референтни приручник API додатака”, функцију „weechat_hdata_get”.
+
+Примери (једноставни стрингови):
+ /eval -n ${raw:${info:version}} ==> ${info:version}
+ /eval -n ${eval_cond:${window.win_width}>100} ==> 1
+ /eval -n ${info:version} ==> 0.4.3
+ /eval -n ${env:HOME} ==> /home/user
+ /eval -n ${weechat.look.scroll_amount} ==> 3
+ /eval -n ${sec.data.freenode_password} ==> secret
+ /eval -n ${window} ==> 0x2549aa0
+ /eval -n ${window.buffer} ==> 0x2549320
+ /eval -n ${window.buffer.full_name} ==> core.weechat
+ /eval -n ${window.buffer.number} ==> 1
+ /eval -n ${\t} ==> <tab>
+ /eval -n ${hide:-,${relay.network.password}} ==> --------
+ /eval -n ${cut:3,+,test} ==> tes+
+ /eval -n ${cut:+3,+,test} ==> te+
+ /eval -n ${date:%H:%M:%S} ==> 07:46:40
+ /eval -n ${if:${info:term_width}>80?big:small} ==> big
+ /eval -n ${rev:Hello} ==> olleH
+ /eval -n ${repeat:5,-} ==> -----
+ /eval -n ${length:test} ==> 4
+ /eval -n ${calc:(5+2)*3} ==> 21
+ /eval -n ${base_encode:64,test} ==> dGVzdA==
+ /eval -n ${base_decode:64,dGVzdA==} ==> test
+ /eval -n ${translate:Plugin} ==> Extension
+
+Примери (услови):
+ /eval -n -c ${window.buffer.number} > 2 ==> 0
+ /eval -n -c ${window.win_width} > 100 ==> 1
+ /eval -n -c (8 > 12) || (5 > 2) ==> 1
+ /eval -n -c (8 > 12) && (5 > 2) ==> 0
+ /eval -n -c abcd =~ ^ABC ==> 1
+ /eval -n -c abcd =~ (?-i)^ABC ==> 0
+ /eval -n -c abcd =~ (?-i)^abc ==> 1
+ /eval -n -c abcd !~ abc ==> 0
+ /eval -n -c abcd =* a*d ==> 1
+ /eval -n -c abcd =- bc ==> 1
+----
+
+[[command_weechat_filter]]
+* `+filter+`: филтрира поруке у баферима, тако да се скривају/приказују зависно од ознака или регуларног израза
+
+----
+/filter list
+ enable|disable|toggle [<име>|@]
+ add|addreplace <име> <бафер>[,<бафер>...] <ознаке> <регуларни_израз>
+ rename <име> <ново_име>
+ recreate <име>
+ del <име>|-all
+
+ list: исписује све филтере
+ enable: укључује филтере (филтери су подразумевано укључени)
+ disable: искључује филтере
+ toggle: пребацује стање филтера
+ име: име филтера („@” = укључује/искључује све филтере у текућем баферу)
+ add: додаје филтер
+addreplace: додаје или замењује постојећи филтер
+ rename: мења име филтеру
+ recreate: поставља унос са командом која је употребљена за уређивање филтера
+ del: брише филтер
+ -all: брише све филтере
+ buffer: листа бафера раздвојених зарезима у којима је филтер активан:
+ - ово је пуно име укључујући додатак (пример: „irc.libera.#weechat” или „irc.server.libera”)
+ - „*” значи сви бафери
+ - име које почиње са ’!’ се не укључује
+ - дозвољен је џокер „*”
+ ознаке: листа ознака раздвојених зарезима, на пример „irc_join,irc_part,irc_quit”
+ - логичко „и”: употребите „+” између ознака (на пример: „nick_toto+irc_action”)
+ - дозвољен је џокер „*”
+ - ако ознака почиње са ’!’, онда се не укључује и НЕ СМЕ да се нађе у поруци
+ регуларни_израз: POSIX проширени регуларни израз за претрагу унутар линије
+ - за раздвајање префикса од поруке, употребите ’\t’, специјални карактери као што је ’|’ морају да се означе: ’\|’
+ - ако регуларни израз почиње са ’!’, онда се подударајући резултат обрће (употребите ’\!’ ако желите да почне са ’!’)
+ - креирају се два регуларна израза: један за префикс и један за поруку
+ - регуларни изрази не праве разлику у величини слова, могу да почну са „(?-i)” ако желите да се прави разлика у величини слова
+
+Подразумевани тастер alt+’=’ глобално пребацује укљ./искљ. филтрирање, а alt+’-’ пребацује укљ./искљ. филтрирање текућег бафера.
+
+Најчешће коришћене ознаке:
+ no_filter, no_highlight, no_log, log0..log9 (лог ниво),
+ notify_none, notify_message, notify_private, notify_highlight,
+ self_msg, nick_xxx (xxx је надимак у поруци), prefix_nick_ccc (ccc је боја надимка),
+ host_xxx (xxx је корисничко име + хост у поруци),
+ irc_xxx (xxx је име команде или број, погледајте /server raw или /debug tags),
+ irc_numeric, irc_error, irc_action, irc_ctcp, irc_ctcp_reply, irc_smart_filter, away_info.
+Ако желите да видите ознаке за линије у баферима: /debug tags
+
+Примери:
+ користи IRC паметни филтер у свим баферима:
+ /filter add irc_smart * irc_smart_filter *
+ користи IRC паметни филтер у свим баферима осим у онима који садрже „#weechat” у имену:
+ /filter add irc_smart *,!*#weechat* irc_smart_filter *
+ филтрира све IRC join/part/quit поруке:
+ /filter add joinquit * irc_join,irc_part,irc_quit *
+ филтрира надимке који се приказују када се приступа каналима или са командом /names:
+ /filter add nicks * irc_366 *
+ филтрира надимак „toto” на IRC каналу #weechat:
+ /filter add toto irc.libera.#weechat nick_toto *
+ филтрира IRC join/action поруке које долазе од надимка „toto”:
+ /filter add toto * nick_toto+irc_join,nick_toto+irc_action *
+ филтрира линије које садрже „weechat sucks” на IRC каналу #weechat:
+ /filter add sucks irc.libera.#weechat * weechat sucks
+ филтрира линије које су тачно „WeeChat sucks” у свим баферима:
+ /filter add sucks2 * * (?-i)^WeeChat sucks$
+----
+
+[[command_weechat_help]]
+* `+help+`: приказивање помоћи за команде и опције
+
+----
+/help -list|-listfull [<додатак> [<додатак>...]]
+ <команда>
+ <опција>
+
+ -list: исписује команде, по додатку (без аргумента, приказује се ова листа)
+-listfull: приказује команде са описом, по додатку
+ додатак: приказује команде за овај додатак
+ команда: име команде
+ опција: име опције (да видите списак, употребите /set)
+----
+
+[[command_weechat_history]]
+* `+history+`: приказивање историје команди у баферу
+
+----
+/history clear
+ <вредност>
+
+ clear: брише историју
+вредност: број ставки из историје које ће се приказати
+----
+
+[[command_weechat_input]]
+* `+input+`: функције за командну линију
+
+----
+/input <акција> [<аргументи>]
+
+листа акција:
+ return: симулира притисак на тастер „ентер”
+ complete_next: довршава реч са наредним довршавањем
+ complete_previous: довршава реч са претходним довршавањем
+ search_text_here: претражује текст у баферу почевши од текуће позиције
+ search_text: претражује текст у баферу
+ search_switch_case: укључује употребу тачне величине слова код претраге
+ search_switch_regex: мења тип претраге: стринг/регуларни израз
+ search_switch_where: укључује претрагу у порукама/префиксима
+ search_previous: претрага у претходној линији
+ search_next: претрага у наредној линији
+ search_stop_here: зауставља претрагу на текућој позицији
+ search_stop: зауставља претрагу
+ delete_previous_char: брише претходни карактер
+ delete_next_char: брише наредни карактер
+ delete_previous_word: брише претходну реч
+ delete_next_word: брише наредну реч
+ delete_beginning_of_line: брише од почетка линије до позиције курсора
+ delete_end_of_line: брише од позиције курсора до краја линије
+ delete_line: брише комплетну линију
+ clipboard_paste: налепљује из интерног клипборда
+ transpose_chars: транспонује два карактера (замењују места)
+ undo: поништава последњу акцију командне линије
+ redo: обнавља последње поништену акцију команде линије
+ move_beginning_of_line: помера курсор на почетак линије
+ move_end_of_line: помера курсор на крај линије
+ move_previous_char: помера курсор на претходни карактер
+ move_next_char: помера курсор на наредни карактер
+ move_previous_word: помера курсор на претходну реч
+ move_next_word: помера курсор на наредну реч
+ history_previous: позива претходну команду из историје команди текућег бафера
+ history_next: позива наредну команду из историје команди текућег бафера
+ history_global_previous: позива претходну команду из глобалне историје команди
+ history_global_next: позива наредну команду из глобалне историје команди
+ jump_smart: скаче на наредни бафер у коме постоји активност
+ jump_last_buffer_displayed: скаче на последњи приказани бафер (пре последњег скока на бафер)
+ jump_previously_visited_buffer: скаче на претходно посећени бафер
+ jump_next_visited_buffer: скаче на наредни посећени бафер
+ hotlist_clear: брише врућу листу (необавезни аргументи: „lowest” за брисање само најнижег нивоа у врућој листи, „highest” за брисање само највишег нивоа у врућој листи, или маска нивоа: целобројна вредност која представља комбинацију 1=join/part, 2=порука, 4=приватно, 8=истицање)
+ grab_key: преузима тастер (необавезни аргумент: кашњење за крај преузимања, подразумевано је 500 милисекунди)
+ grab_key_command: преузима тастер са својом придруженом командом (необавезни аргумент: кашњење за крај преузимања, подразумевано је 500 милисекунди)
+ grab_mouse: преузима кôд догађаја миша
+ grab_mouse_area: преузима кôд догађаја миша заједно са површином
+ set_unread: поставља маркер непрочитан за све бафере
+ set_unread_current_buffer: поставља маркер непрочитан за текући бафер
+ switch_active_buffer: прелази на наредни спојени бафер
+ switch_active_buffer_previous: прелази на претходни спојени бафер
+ zoom_merged_buffer: зумира на спојени бафер
+ insert: умеће текст у командну линију (дозвољени су означени карактери, погледајте /help print)
+ send: шаље текст баферу
+ paste_start: започиње налепљивање (режим ограђеног налепљивања)
+ paste_stop: зауставља налепљивање (режим ограђеног налепљивања)
+
+Ову команду користе тастерске пречице или додаци.
+----
+
+[[command_weechat_key]]
+* `+key+`: везивање/развезивање тастера
+
+----
+/key list|listdefault|listdiff [<контекст>]
+ bind <тастер> [<команда> [<арг>]]
+ bindctxt <контекст> <тастер> [<команда> [<арг>]]
+ unbind <тастер>
+ unbindctxt <контекст> <тастер>
+ reset <тастер>
+ resetctxt <контекст> <тастер>
+ resetall -yes [<контекст>]
+ missing [<контекст>]
+
+ list: исписује све текуће тастере (без аргумената, приказује се ова листа)
+listdefault: исписује подразумеване тастере
+ listdiff: исписује разлике између тренутних и подразумеваних тастера (додати, редефинисани или обрисани тастери)
+ контекст: име контекста („default” или „search”)
+ bind: везује команду за тастер или приказује команду која је везана за тастер (за контекст „default”)
+ bindctxt: везује команду за тастер или приказује команду која је везана за тастер, за дати контекст
+ команда: команда (више команди може да се раздвоји са тачка зарезима)
+ unbind: уклања везивање тастера (за контекст „default”)
+ unbindctxt: уклања везивање тастера за дати контекст
+ reset: ресетује тастер на подразумевано везивање (за контекст „default”)
+ resetctxt: ресетује тастер на подразумевано везивање, за дати контекст
+ resetall: обнавља везивања на подразумеване вредности и брише СВА лична везивања (употребљавајте опрезно!)
+ missing: додаје недостајуће тастере (користећи подразумевана везивања), корисно након инсталације нове верзије програма WeeChat
+
+Када се команда везује за тастер, препоручује се да се користи тастер alt+k (или Esc па онда k), па да се онда притисне тастер који желите да вежете: ово ће у командну линију да убаци кôд тастера.
+
+За контекст „mouse” (такође могуће и у контексту „cursor”), тастер има следећи формат: „@површина:тастер” или „@површина1>површина2:тастер” где површина може бити:
+ *: било која површина на екрану
+ chat: простор за разговор (било који бафер)
+ chat(xxx): простор за разговор у баферу под именом „xxx” (пуно име укључујући и додатак)
+ bar(*): било која трака
+ bar(xxx): трака „xxx”
+ item(*): било која ставка траке
+ item(xxx): ставка траке „xxx”
+У тастеру се дозвољава употреба џокера „*” који се подудара са више догађаја миша.
+У контексту миша може да се користи специјална вредност за команду у формату „hsignal:име”, она ће послати hsignal „име” са фокус хеш табелом као аргументом.
+Још једна специјална вредност је „-” и она може да се користи за искључивање тастера (тастер ће се игнорисати приликом претраге тастера).
+
+Примери:
+ тастер alt-t за преклапање видљивости траке са надимцима:
+ /key bind meta-t /bar toggle nicklist
+ тастер alt-r за скок на #weechat IRC канал:
+ /key bind meta-r /buffer #weechat
+ обнављање подразумеваног везивања за тастер alt-r:
+ /key reset meta-r
+ тастер „tab” за заустављање претраге у баферу:
+ /key bindctxt search ctrl-I /input search_stop
+ средњи тастер миша над надимком приказује информације о надимку:
+ /key bindctxt mouse @item(buffer_nicklist):button3 /msg nickserv info ${nick}
+----
+
+[[command_weechat_layout]]
+* `+layout+`: управљање распоредима бафера/прозора
+
+----
+/layout store [<име>] [buffers|windows]
+ apply [<име>] [buffers|windows]
+ leave
+ del [<име>] [buffers|windows]
+ rename <име> <ново_име>
+
+ store: чува текуће бафере/прозоре у распореду
+ apply: примењује сачувани распоред
+ leave: напушта текући распоред (не ажурира ниједан распоред)
+ del: брише бафере и/или прозоре из сачуваног распореда
+ (ако након имена није наведено ни „buffers” ни „windows”, онда се брише распоред)
+ rename: измена имена распореда
+ име: име распореда који се чува (подразумевано је „default”)
+buffers: чува/обнавља само бафере (редослед бафера)
+windows: чува/обнавља само прозоре (бафер који приказује сваки прозор)
+
+Без аргумента, ова команда приказује сачуване распореде.
+
+Текући распоред може да се сачува приликом /quit команде опцијом „weechat.look.save_layout_on_exit”.
+----
+
+[[command_weechat_mouse]]
+* `+mouse+`: контрола миша
+
+----
+/mouse enable|disable|toggle [<кашњење>]
+
+ enable: укључује миша
+disable: искључује миша
+ toggle: мења стање активности миша
+ delay: кашњење (у секундама) након којег се обнавља почетно стање миша (корисно за привремено искључивање миша)
+
+Стање миша се чува у опцији „weechat.look.mouse”.
+
+Примери:
+ укључивање миша:
+ /mouse enable
+ измена стања активности миша на 5 секунди:
+ /mouse toggle 5
+----
+
+[[command_weechat_mute]]
+* `+mute+`: извршавање команде у тишини
+
+----
+/mute [-core | -current | -buffer <име>] <команда>
+
+ -core: нема излаза за WeeChat основни бафер
+-current: нема излаза за текући бафер
+ -buffer: нема излаза за наведени buffer
+ име: пуно име бафера (примери: „irc.server.libera”, „irc.libera.#weechat”)
+ команда: команда коју желите да извршите у тишини (’/’ се аутоматски додаје ако се не пронађе на почетку имена команде)
+
+Ако се не наведе циљ (-core, -current или -buffer), онда ће се подразумевано утишати сви бафери.
+
+Примери:
+ чување конфигурације:
+ /mute save
+ порука на текући IRC канал:
+ /mute -current msg * здраво!
+ порукa на #weechat канал:
+ /mute -buffer irc.libera.#weechat msg #weechat здраво!
+----
+
+[[command_weechat_plugin]]
+* `+plugin+`: приказ/учитавање/уклањање додатака
+
+----
+/plugin list|listfull [<име>]
+ load <имефајла> [<аргументи>]
+ autoload [<аргументи>]
+ reload [<име>|* [<аргументи>]]
+ unload [<име>]
+
+ list: исписује учитане додатке
+ listfull: исписује учитане додатке (детаљно)
+ load: учитава додатак
+ autoload: аутоматски учитава додатке из системског или корисничког директоријума
+ reload: поново учитава додатак (ако се не зада име, уклања из меморије све додатке, па их затим аутоматски учитава)
+ unload: уклања додатак из меморије (ако се не зада име, уклања све додатке из меморије)
+ имефајла: додатак (фајл) који треба да се учита
+ име: име додатка
+аргументи: аргументи који се прослеђују додатку приликом учитавања
+
+Без аргумента, ова команда исписује учитане додатке.
+----
+
+[[command_weechat_print]]
+* `+print+`: исписује текст у бафер
+
+----
+/print [-buffer <број>|<име>] [-newbuffer <име>] [-free] [-switch] [-core|-current] [-y <линија>] [-escape] [-date <датум>] [-tags <ознаке>] [-action|-error|-join|-network|-quit] [<текст>]
+ -stdout|-stderr [<текст>]
+ -beep
+
+ -buffer: исписује текст у овај бафер (подразумевано: бафер у којем се команда извршава)
+-newbuffer: креира нови бафер и приказује текст у њему
+ -free: креира бафер са слободним садржајем (само са -newbuffer)
+ -switch: пребацује се на бафер
+ -core: алијас за „-buffer core.weechat”
+ -current: приказује текст у текући бафер
+ -y: приказује на прилагођеној линији (само за бафер са слободним садржајем)
+ линија: број линије за бафер са слободним садржајем (прва линија је 0, негативни број приказује након последње линије: -1 = након последње линије, -2 = две линије након последње линије, итд.)
+ -escape: интерпретирају се означени карактери (на пример \a, \07, \x07)
+ -date: датум поруке, формат може да буде:
+ -n: пре ’n’ секунди
+ +n: ’n’ секунди у будућности
+ n: ’n’ секунди од почетка Епохе (погледајте man time)
+ датум/време (ISO 8601): гггг-мм-ддTчч:мм:сс, пример: 2021-01-23T04:32:55
+ време: чч:мм:сс (пример: 04:32:55)
+ -tags: листа ознака раздвојених зарезима (за листу најчешће коришћених ознака, погледајте /help filter)
+ текст: текст који треба да се испише (префикс и порука морају да се раздвоје са „\t”, ако текст почиње са „-”, онда додајте испред „\” before)
+ -stdout: текст се приказује на stdout (интерпретирају се означени карактери)
+ -stderr: текст се приказује на stderr (интерпретирају се означени карактери)
+ -beep: алијас за „-stderr \a”
+
+Опције -action ... -quit користе префикс дефинисану опцијама „weechat.look.prefix_*”.
+
+Подржани су следећи означени карактери:
+ \" \\ \a \b \e \f \n \r \t \v \0ooo \xhh \uhhhh \Uhhhhhhhh
+
+Примери:
+ приказује подсетник у основном баферу, са истицањем:
+ /print -core -tags notify_highlight Подсетник: купи млеко
+ приказује грешку у основном баферу:
+ /print -core -error Овде иде нека грешка
+ приказује поруку у основном баферу са префиксом „абв”:
+ /print -core абв\tПорука
+ приказује поруку на каналу #weechat:
+ /print -buffer irc.libera.#weechat Порука на #weechat
+ приказује снешка (U+2603):
+ /print -escape \u2603
+ шаље упозорење (BEL):
+ /print -beep
+----
+
+[[command_weechat_proxy]]
+* `+proxy+`: управљање проксијима
+
+----
+/proxy list
+ add <име> <тип> <адреса> <порт> [<кориме> [<лозинка>]]
+ del <име>|-all
+ set <име> <опција> <вредност>
+
+ list: исписује све проксије
+ add: додаје нови прокси
+ име: име проксија (мора да буде јединствено)
+ тип: http, socks4 или socks5
+ адреса: IP или име хоста
+ порт: порт
+ кориме: корисничко име (необавезно)
+ лозинка: лозинка (необавезно)
+ del: брише прокси (или све проксије са -all)
+ set: поставља вредност особине проксија
+ опција: опција која треба да се промени (за листу опција, погледајте /set weechat.proxy.<имепроксија>.*)
+вредност: нова вредност за опцију
+
+Примери:
+ додаје http прокси, који се извршава на локалном хосту, порт 8888:
+ /proxy add local http 127.0.0.1 8888
+ додаје http прокси који користи IPv6 протокол:
+ /proxy add local http ::1 8888
+ /proxy set local ipv6 on
+ додаје socks5 прокси са корисничким именом/лозинком:
+ /proxy add myproxy socks5 sample.host.org 3128 myuser mypass
+ брише прокси:
+ /proxy del myproxy
+----
+
+[[command_weechat_quit]]
+* `+quit+`: напуштање програма WeeChat
+
+----
+/quit [-yes] [<аргументи>]
+
+ -yes: неопходно је ако је укључена опција „weechat.look.confirm_quit”
+аргументи: текст који се шаље сигналом „quit”
+ (irc додатак, на пример, користи овај текст да серверу пошаље quit поруку)
+
+Приликом напуштања програма је подразумевано да се чувају конфигурациони фајлови (погледајте опцију „weechat.look.save_config_on_exit”) а могуће је и чување текућег распореда (погледајте опцију „weechat.look.save_layout_on_exit”).
+----
+
+[[command_weechat_reload]]
+* `+reload+`: поновно учитавање конфигурације са диска
+
+----
+/reload [<фајл> [<фајл>...]]
+
+фајл: конфигурациони фајл који се поново учитава (без екстензије „.conf”)
+
+Без аргумента, поново се учитавају сви фајлови (WeeChat и додаци).
+----
+
+[[command_weechat_repeat]]
+* `+repeat+`: извршавање команде неколико пута
+
+----
+/repeat [-interval <кашњење>[<јединица>]] <број> <команда>
+
+ кашњење: кашњење између извршавања команди
+јединица: необавезно, вредности су:
+ ms: милисекунде
+ s: секунде (подразумевано)
+ m: минуте
+ h: сати
+ број: колико пута ће се команда извршити
+ команда: команда која треба да се изврши (или текст који се шаље баферу ако команда не почиње са ’/’)
+
+Напомена: команда се извршава у баферу у коме је извршена команда /repeat (ако тај бафер више не постоји, команда се не извршава).
+
+Пример:
+ скролује 2 странице навише:
+ /repeat 2 /window page_up
+----
+
+[[command_weechat_save]]
+* `+save+`: чување конфигурације на диск
+
+----
+/save [<фајл> [<фајл>...]]
+
+фајл: конфигурациони фајл који се чува (без екстензије „.conf”)
+
+Без аргумента, чувају се сви фајлови (WeeChat и додаци).
+
+Подразумевано се сви конфигурациони фајлови чувају на диск приликом извршавања /quit команде (погледајте опцију „weechat.look.save_config_on_exit”).
+----
+
+[[command_weechat_secure]]
+* `+secure+`: управљање сигурним подацима (лозинке или приватни подаци шифровани у фајлу sec.conf)
+
+----
+/secure passphrase <тајна_реченица>|-delete
+ decrypt <тајна_реченица>|-discard
+ set <име> <вредност>
+ del <име>
+
+passphrase: измена тајне реченице (без passphrase, подаци се у фајлу sec.conf чувају као чисти текст)
+ -delete: брисање тајне реченице
+ decrypt: дешифрује податке који су још увек шифровани (врши се само у случају да током покретања није наведена тајна реченица)
+ -discard: одбацује све још увек шифроване податке
+ set: додаје или мења обезбеђене податке
+ del: брише обезбеђене податке
+
+Без аргумента, ова команда приказује у новом баферу обезбеђене податке.
+
+Тастери у безбедном баферу:
+ alt+v мења стање вредностима
+
+Када се користи тајна реченица (подаци су шифровани), програм WeeChat приликом покретања тражи од вас да је унесете.
+Можете да поставите променљиву окружења „WEECHAT_PASSPHRASE” која спречава овај одзив (то је иста променљива коју програм WeeChat користи приликом /upgrade), или да поставите опцију sec.crypt.passphrase_command тако да се тајна реченица чита из излаза спољне команде као што је управљач лозинкама (погледајте /help sec.crypt.passphrase_command).
+
+Обезбеђени подаци у формату ${sec.data.xxx} могу да се користе у:
+ - команди /eval
+ - аргументу командне линије „--run-command”
+ - опцијама weechat.startup.command_{before|after}_plugins
+ - осталим опцијама које могу да садрже лозинку или осетљиве податке (на пример прокси, irc сервер и релеј); погледајте /help за опције да сазнате како се оне израчунавају.
+
+Примери:
+ поставља тајну реченицу:
+ /secure passphrase ово је моја тајна реченица
+ користи програм „pass” за читање тајне реченице приликом покретања:
+ /set sec.crypt.passphrase_command „pass show weechat/passphrase”
+ шифровање libera SASL лозинке:
+ /secure set libera мојалозинка
+ /set irc.server.libera.sasl_password „${sec.data.libera}”
+ шифровање oftc лозинке за nickserv:
+ /secure set oftc мојалозинка
+ /set irc.server.oftc.command "/msg nickserv identify ${sec.data.oftc}"
+ алијас за ghost надимка „mynick”:
+ /alias add ghost /eval /msg -server libera nickserv ghost mynick ${sec.data.libera}
+----
+
+[[command_weechat_set]]
+* `+set+`: постављање конфиг опција и променљивих окружења
+
+----
+/set [<опција> [<вредност>]]
+ diff [<опција> [<опција>...]]
+ env [<променљива> [<вредност>]]
+
+ опција: име опције (за приказ опција је дозвољена употреба џокера „*”, у случају да се не наведе ниједна вредност)
+вредност: нова вредност за опцију, сагласно са типом:
+ логичка: on, off или toggle
+ целобројна: број, ++број или --број
+ стринг: било који стринг ("" за празан стринг)
+ боја: име боје, ++број или --број
+ Напомена: за све типове можете да користите null када желите да уклоните вредност опције (недефинисана вредност). Ово функционише само за неке специјалне променљиве додатка.
+ diff: приказује само измењене опције
+ env: приказује или поставља променљиву окружења (употребите вредност "" да уклоните променљиву)
+
+Примери:
+ приказ опција у вези истицања:
+ /set *highlight*
+ додаје реч у истицање:
+ /set weechat.look.highlight "реч"
+ приказује измењене опције:
+ /set diff
+ приказује измењене опције у irc додатку:
+ /set diff irc.*
+ приказује вредност променљиве окружења LANG:
+ /set env LANG
+ поставља променљиву окружења LANG и користи је:
+ /set env LANG sr_RS.UTF-8
+ /upgrade
+ уклања променљиву окружења ABC:
+ /set env ABC ""
+----
+
+[[command_weechat_unset]]
+* `+unset+`: уклањање/ресетовање конфиг опција
+
+----
+/unset <опција>
+ -mask <опција>
+
+опција: име опције
+ -mask: користи маску у опцији (дозвољен је џокер „*” за масовно ресетовање опција, користите га опрезно!)
+
+Зависно од опције, она се ресетује (за стандардне опције) или уклања (за необавезна подешавања, као што су серверске вредности).
+
+Примери:
+ ресетовање једне опције:
+ /unset weechat.look.item_time_format
+ ресетовање свих опција боја:
+ /unset -mask weechat.color.*
+----
+
+[[command_weechat_upgrade]]
+* `+upgrade+`: поновно учитавање WeeChat бинарног фајла без прекидања конекције са серверима
+
+----
+/upgrade [-yes] [<путања_до_бинарног>|-quit]
+
+ -yes: обавезно ако је укључена опција „weechat.look.confirm_upgrade”
+путања_до_бинарног: путања до WeeChat бинарног фајла (подразумевано је текући бинарни фајл)
+ -dummy: не ради ништа (опција која се користи за спречавање нехотичног довршавања са „-quit”)
+ -quit: затвара *СВЕ* конекције, чува сесију и напушта програм WeeChat, чиме се омогућава закашњена рестаурација (погледајте испод)
+
+Ова команда ажурира и поновно учитава WeeChat сесију која се извршава. Нови WeeChat бинарни фајл мора бити компајлиран или инсталиран менаџером пакета пре покретања ове команде.
+
+Напомена: SSL конекције се губе током ажурирања, јер тренутно са GnuTLS није могуће поновно учитавање SSL сесија. Постоји аутоматско поновно успостављање конекције након ажурирања.
+
+Процес ажурирања има 4 корака:
+ 1. чување сесије у фајлове за језгро и додатке (бафери, историја, ..)
+ 2. уклањање свих додатака из меморије (конфигурациони фајлови (*.conf) се уписују на диск)
+ 3. чување WeeChat конфигурације (weechat.conf)
+ 4. извршавање новог WeeChat бинарног фајла и поновно учитавање сесије.
+
+Са опцијом „-quit”, процес је малко другачији:
+ 1. затварање *СВИХ* конекција (irc, xfer, relay, ...)
+ 2. чување сесије у фајлове (*.upgrade)
+ 3. уклањање свих додатака из меморије
+ 4. чување WeeChat конфигурације
+ 5. напуштање програма WeeChat
+Затим касније можете да обновите сесију командом: weechat --upgrade
+ВАЖНО: сесију морате да обновите са потпуно истом конфигурацијом (фајлови *.conf).
+WeeChat сесија може да се обнови на другој машини ако копирате садржај WeeChat почетних директоријума (погледајте /debug dirs).
+----
+
+[[command_weechat_uptime]]
+* `+uptime+`: приказ времена извршавања програма WeeChat
+
+----
+/uptime [-o|-ol]
+
+ -o: шаље време извршавања као унос у текући бафер (енглески стринг)
+-ol: шаље време извршавања као унос у текући бафер (преведени стринг)
+----
+
+[[command_weechat_version]]
+* `+version+`: приказ верзије и датума компајлирања програма WeeChat
+
+----
+/version [-o|-ol]
+
+ -o: шаље верзију као унос у текући бафер (енглески стринг)
+-ol: шаље верзију као унос у текући бафер (преведени стринг)
+
+Подразумевани алијас /v може да се употреби за извршавање ове команде у свим баферима (иначе ће се у irc баферима употребити команда /version).
+----
+
+[[command_weechat_wait]]
+* `+wait+`: планирање извршавања команде у будућности
+
+----
+/wait <број>[<јединица>] <команда>
+
+ број: време чекања (цео број)
+јединица: необавезно, вредности су:
+ ms: милисекунде
+ s: секунде (подразумевано)
+ m: минуте
+ h: сати
+ команда: команда која треба да се изврши (или текст који се шаље баферу ако команда не почиње са ’/’)
+
+Напомена: команда се извршава у баферу у коме је извршена команда /wait (ако тај бафер више не постоји, команда се не извршава).
+
+Примери:
+ приступање каналу за 10 секунди:
+ /wait 10 /join #test
+ постављање статуса одсутности за 15 минута:
+ /wait 15m /away -all Отишао сам
+ каже ’здраво' за 2 минута:
+ /wait 2m здраво
+----
+
+[[command_weechat_window]]
+* `+window+`: управљање прозорима
+
+----
+/window list
+ -1|+1|b#|up|down|left|right [-window <број>]
+ <број>
+ splith|splitv [-window <број>] [<проц>]
+ resize [-window <број>] [h|v][+|-]<проц>
+ balance
+ merge [-window <број>] [all]
+ close [-window <број>]
+ page_up|page_down [-window <број>]
+ refresh
+ scroll [-window <број>] [+|-]<вредн>[s|m|h|d|M|y]
+ scroll_horiz [-window <број>] [+|-]<вредн>[%]
+ scroll_up|scroll_down|scroll_top|scroll_bottom|scroll_beyond_end|scroll_previous_highlight|scroll_next_highlight|scroll_unread [-window <број>]
+ swap [-window <број>] [up|down|left|right]
+ zoom [-window <број>]
+ bare [<кашњење>]
+
+ list: исписује отворене прозоре (без аргумента, исписује се ова листа)
+ -1: скок на претходни прозор
+ +1: скок на следећи прозор
+ b#: скок на следећи прозор који приказује бафер под бројем #
+ up: прелаз на прозор изнад текућег
+ down: прелаз на прозор испод текућег
+ left: прелаз на прозор са леве стране
+ right: прелаз на прозор са десне стране
+ број: број прозора (погледајте /window list)
+ splith: дели текући прозор по хоризонтали (да поништите: /window merge)
+ splitv: дели текући прозор по вертикали (да поништите: /window merge)
+ resize: мења величину прозора, нова величина је <проц> проценат родитељског прозора
+ ако се наведе „h” или „v”, промена величине утиче на најближи родитељски прозор који има поделу овог типа (хоризонталну/вертикалну)
+ balance: балансира величине свих прозора
+ merge: спаја прозор са неким другим (all = оставља само један прозор)
+ close: затвара прозор
+ page_up: скролује једну страницу навише
+ page_down: скролује једну страницу наниже
+ refresh: освежава екран
+ scroll: скролује одређени број линија (+/-N) или са временом: s=секунде, m=минуте, h=сати, d=дани, M=месеци, y=године
+ scroll_horiz: скролује хоризонтално за одређени број колона (+/-N) или за проценат величине прозора (ово скроловање је могуће само у баферима са слободним садржајем)
+ scroll_up: скролује неколико линија навише
+ scroll_down: скролује неколико линија наниже
+ scroll_top: скролује на врх бафера
+scroll_bottom: скролује на дно бафера
+scroll_beyond_end: скролује иза краја бафера
+scroll_previous_highlight: скролује на претходно истицање
+scroll_next_highlight: скролује на наредно истицање
+scroll_unread: скролује на непрочитани маркер
+ swap: замењује бафере два прозора (са необавезним смером за циљни прозор)
+ zoom: зумира на прозор
+ bare: мења стање огољеног приказа (са необавезним кашњењем у секундама за аутоматски повратак на режим стандардног приказа)
+
+Код splith и splitv, проц је проценат који представља величину новог прозора, израчунату са текућим прозором као основом. На пример, 25 значи да се креира нови прозор са величином која је = текућа_величина / 4
+
+Примери:
+ скок на прозор који приказује бафер #1:
+ /window b1
+ скроловање 2 линије навише:
+ /window scroll -2
+ скроловање 2 дана навише:
+ /window scroll -2d
+ скрол на почетак данашњег дана:
+ /window scroll -d
+ зум на прозор #2:
+ /window zoom -window 2
+ хоризонтална подела прозора користећи 30% простора за прозор на врху:
+ /window splith 30
+ промена величине прозора на 75% величине родитељског прозора:
+ /window resize 75
+ промена величине вертикалне поделе, уз додавање 10% величине:
+ /window resize v+10
+ уклањање поделе, уз задржавање текућег прозора:
+ /window merge
+ затварање текућег прозора:
+ /window close
+ укључивање огољеног приказа на 2 секунде:
+ /window bare 2
+----
+// end::weechat_commands[]
+
+// tag::buflist_commands[]
+[[command_buflist_buflist]]
+* `+buflist+`: ставка траке са листом бафера
+
+----
+/buflist enable|disable|toggle
+ bar
+ refresh
+
+ enable: укључује buflist
+disable: искључује buflist
+ toggle: пребацује buflist
+ bar: додаје „buflist” траку
+refresh: форсира освежавање ставки траке (buflist, buflist2 и buflist3)
+
+Линије са баферима се приказују употребом израчунавања стринга (погледајте /help eval за формат), са следећим опцијама:
+ - buflist.look.display_conditions: услови под којима се бафер приказује у листи
+ - buflist.format.buffer: формат за бафер који није текући бафер
+ - buflist.format.buffer_current: формат за текући бафер
+
+У овим опцијама је могуће коришћење следећих променљивих:
+ - подаци ставке траке (погледајте hdata „bar_item” у документацији API за комплетну листу), на пример:
+ - ${bar_item.name}
+ - подаци о прозору, у коме се трака приказује (не постоји прозор у кореним тракама, погледајте hdata „window” у документацији API за комплетну листу), на пример:
+ - ${window.number}
+ - ${window.buffer.full_name}
+ - подаци о баферу (погледајте hdata „buffer” у API доку за комплетну листу), на пример:
+ - ${buffer.number}
+ - ${buffer.name}
+ - ${buffer.full_name}
+ - ${buffer.short_name}
+ - ${buffer.nicklist_nicks_count}
+ - irc_server: подаци о IRC серверу, дефинисани су само за IRC бафер (погледајте hdata „irc_server” у документацији API)
+ - irc_channel: подаци о IRC каналу, дефинисани су само за бафер IRC канала (погледајте hdata „irc_channel” у документацији API)
+ - buflist додаје још неке променљиве како би се олакшала употреба:
+ - ${format_buffer}: израчуната вредност опције buflist.format.buffer; ово може да се користи у опцији buflist.format.buffer_current да би се, на пример, променила само боја позадине
+ - ${current_buffer}: логичка вредност („0” или „1”), „1” ако је ово текући бафер; може да се користи у услову: ${if:${current_buffer}?...:...}
+ - ${merged}: логичка вредност („0” или „1”), „1” ако је бафер спојен са барем још једним другим бафером; може да се користи у услову: ${if:${merged}?...:...}
+ - ${format_number}: увучени број са граничником (израчуната вредност опције buflist.format.number)
+ - ${number}: увучени број, на пример „1” ако постоји између 10 и 99 бафера; заспојене бафере, ова променљива се поставља на број првог бафера и размаке за наредне бафере са под истим бројем
+ - ${number2}: увучени број, на пример „ 1” ако постоји између 10 и 99 бафера
+ - ${number_displayed}: „1” ако се број приказује, у супротном „0”
+ - ${indent}: увлачење за име (бафери канала и приватни бафери се увлаче) (израчуната вредност опције buflist.format.indent)
+ - ${format_nick_prefix}: обојени префикс надимка за канал (израчуната вредност опције buflist.format.nick_prefix)
+ - ${color_nick_prefix}: боја префикса надимка за канал (постављена је само ако је опција buflist.look.nick_prefix укључена)
+ - ${nick_prefix}: префикс надимка за канал (постављена је само ако је опција buflist.look.nick_prefix укључена)
+ - ${format_name}: форматирано име (израчуната вредност опције buflist.format.name)
+ - ${name}: кратко име (ако је постављено), има вредност имена ако није постављено
+ - ${color_hotlist}: боја која зависи ид највишег нивоа бафера у врућој листи (израчуната вредност опције buflist.format.hotlist_xxx где је xxx ниво)
+ - ${format_hotlist}: форматирана врућа листа (израчуната вредност опције buflist.format.hotlist)
+ - ${hotlist}: сирова врућа листа
+ - ${hotlist_priority}: „none”, „low”, „message”, „private” или „highlight”
+ - ${format_lag}: кашњење за бафер IRC сервера, празна у случају да нема кашњења (израчуната вредност опције buflist.format.lag)
+ - ${format_tls_version}: индикатор TLS верзије за серверски бафер, празно за канале (резултат израчунавања опције buflist.format.tls_version)
+----
+// end::buflist_commands[]
+
+// tag::charset_commands[]
+[[command_charset_charset]]
+* `+charset+`: измена скупа карактера за текући бафер
+
+----
+/charset decode|encode <скуп_кар>
+ reset
+
+ decode: измена скупа карактера у који се декодује
+ encode: измена скупа карактера у који се кодира
+скуп_кар: нови скуп карактера за текући бафер
+ reset: ресетовање скупова карактера за текући бафер
+----
+// end::charset_commands[]
+
+// tag::exec_commands[]
+[[command_exec_exec]]
+* `+exec+`: извршавање спољних команди
+
+----
+/exec -list
+ [-sh|-nosh] [-bg|-nobg] [-stdin|-nostdin] [-buffer <име>] [-l|-o|-oc|-n|-nf] [-oerr] [-cl|-nocl] [-sw|-nosw] [-ln|-noln] [-flush|-noflush] [-color ansi|auto|irc|weechat|strip] [-rc|-norc] [-timeout <тајмаут>] [-name <име>] [-pipe <команда>] [-hsignal <име>] <команда>
+ -in <id> <текст>
+ -inclose <id> [<текст>]
+ -signal <id> <сигнал>
+ -kill <id>
+ -killall
+ -set <id> <особина> <вредн>
+ -del <id>|-all [<id>...]
+
+ -list: исписивање команди
+ -sh: за извршавање команде се користи командно окружење, више команди може да се надовеже (УПОЗОРЕЊЕ: користите ову опцију САМО ако су сви аргументи сигурни, погледајте опцију -nosh)
+ -nosh: за извршавање команде се не користи командно окружење (потребно је ако неке команде користе небезбедне податке, не пример садржај поруке од другог корисника) (подразумевано)
+ -bg: процес се извршава у позадини: излаз процеса као ни враћени кôд се не приказују (није компатибилно са опцијама -o/-oc/-n/-nf/-pipe/-hsignal)
+ -nobg: хватање излаза процеса и приказивање враћеног кода (подразумевано)
+ -stdin: креирање пајпа за слање података процесу (помоћу /exec -in/-inclose)
+-nostdin: не креира се пајп за stdin (подразумевано)
+ -buffer: приказивање/слање излаза команде у овај бафер (ако се бафер не пронађе, креира се нови бафер са именом „exec.exec.xxx”)
+ -l: излаз команде се приказује локално у бафер (подразумевано)
+ -o: излаз команде се шаље у бафер без извршавања команди (није компатибилно са опцијама -bg/-pipe/-hsignal)
+ -oc: излаз команде се шаље у бафер и команде се извршавају (линије које почињу са „/” или неким другим подешеним карактером команде) (није компатибилно са опцијама -bg/-pipe/-hsignal)
+ -n: излаз команде се приказује у новом баферу (није компатибилно са опцијама -bg/-pipe/-hsignal)
+ -nf: излаз команде се приказује у новом баферу са слободним садржајем (нема обавијања речи, нема ограничења броја линија) (није компатибилно са опцијама -bg/-pipe/-hsignal)
+ -oerr: такође шаље и stderr (излаз грешака) у бафер (може да се користи само са опцијама -o и -oc)
+ -cl: садржај новог бафера се брише пре него што се прикаже садржај
+ -nocl: надовезује се на крај новог бафера, без брисања постојећег садржаја (подразумевано)
+ -sw: прелазак на излазни бафер (подразумевано)
+ -nosw: не прелази се на излазни бафер
+ -ln: приказ бројева линија (подразумевано само за нови бафер)
+ -noln: бројеви линија се не приказују
+ -flush: излаз команде се приказује у реалном времену (подразумевано)
+-noflush: излаз команде се приказује након што се заврши њено извршавање
+ -color: акције над ANSI бојама у излазу:
+ ansi: ANSI кодови се не дирају
+ auto: ANSI боје се конвертују у WeeChat/IRC (подразумевано)
+ irc: ANSI боје се конвертују у IRC боје
+ weechat: ANSI боје се конвертују у WeeChat боје
+ strip: ANSI боје се уклањају
+ -rc: враћени кôд се приказује (подразумевано)
+ -norc: враћени кôд се не приказује
+-тајмаут: постављање тајмаута за команду (у секундама)
+ -име: постављање имена за команду (тако да касније може да се помене у /exec)
+ -pipe: излаз се шаље у WeeChat/додатак команду (линија по линију); ако има размака у команди/аргументима, постављају се унутар знакова навода; променљива $line се замењује са линијом (линија се подразумевано додаје након команде, раздвојена размаком) (није компатибилно са опцијама -bg/-o/-oc/-n/-nf)
+-hsignal: излаз се шаље као hsignal (да би се користио на пример, у окидачу) (није компатибилно са опцијама -bg/-o/-oc/-n/-nf)
+ команда: команда која треба да се изврши; ако почиње са „url:”, командно окружење се искључује, садржај на који показује URL се преузима и шаље као излаз
+ id: идентификатор команде: или њен број или име (ако се постави са „-name xxx”)
+ -in: слање текста на стандардни улаз процеса
+-inclose: исто као -in, али се stdin после извршавања затвара (и текст није обавезан: без текста, stdin се једноставно затвори)
+ -signal: слање сигнала процесу; сигнал може да буде цео број или једно од следећих имена: hup, int, quit, kill, term, usr1, usr2
+ -kill: алијас за „-signal <id> kill”
+-killall: убија све процесе који се тренутно извршавају
+ -set: постављање hook особине (погледајте функцију hook_set у API референтном упутству за додатке)
+осовбина: hook особина
+ вредн: нова вредност за hook особину
+ -del: брисање завршене команде
+ -all: брисање свих завршених команди
+
+Подразумеване вредности могу да се поставе у опцији exec.command.default_options.
+
+Примери:
+ /exec -n ls -l /tmp
+ /exec -sh -n ps xu | grep weechat
+ /exec -n -norc url:https://pastebin.com/raw.php?i=xxxxxxxx
+ /exec -nf -noln links -dump https://weechat.org/files/doc/devel/weechat_user.en.html
+ /exec -o uptime
+ /exec -pipe „/print Машина ради:” uptime
+ /exec -n tail -f /var/log/messages
+ /exec -kill 0
+----
+// end::exec_commands[]
+
+// tag::fifo_commands[]
+[[command_fifo_fifo]]
+* `+fifo+`: конфигурација fifo додатка
+
+----
+/fifo enable|disable|toggle
+
+ enable: укључивање FIFO пајпа
+disable: искључивање FIFO пајпа
+ toggle: пребацивање FIFO пајпа
+
+FIFO пајп се користи као даљинска контрола програма WeeChat: можете да шаљете команде или текст у FIFO пајп из свог командног окружења.
+FIFO pipe се подразумевано зове у weechat_fifo_xxx (где је xxx id процеса програма WeeChat) и налази се у WeeChat директоријуму за време извршавања (погледајте /debug dirs).
+
+Формат који се очекује је једно од:
+ plugin.buffer *овде иде текст или команда
+ *овде иде текст или команда
+
+На пример, ако желите да промените свој libera надимак:
+ echo 'irc.server.libera */nick newnick' >~/.weechat/weechat_fifo
+
+За више информација и примере, молимо вас да прочитате корисничко упутство.
+
+Примери:
+ /fifo toggle
+----
+// end::fifo_commands[]
+
+// tag::fset_commands[]
+[[command_fset_fset]]
+* `+fset+`: брзо постављање опција за програм WeeChat и додатке
+
+----
+/fset -bar
+ -refresh
+ -up|-down [<број>]
+ -left|-right [<проценат>]
+ -go <линија>|end
+ -toggle
+ -add [<вредн>]
+ -reset
+ -unset
+ -set
+ -setnew
+ -append
+ -mark
+ -format
+ -export [-help|-nohelp] <имефајла>
+ <филтер>
+
+ -bar: додавање траке помоћи
+ -refresh: освежавање листе опција, па затим комплетног екрана (команда: /window refresh)
+ -up: померање изабране линије навише за „број” линија
+ -down: померање изабране линије наниже за „број” линија
+ -left: скроловање fset бафера за „проценат” ширине у лево
+ -right: скроловање fset бафера за „проценат” ширине у десно
+ -go: избор линије према броју, број прве линије је 0 („end” да изаберете последњу линију)
+ -toggle: пребацивање логичке вредности
+ -add: додавање „вредн” (која може да буде и негативан број) за целе бројеве и боје, постављање/надовезивање на вредност осталих типова (постављање за негативну вредност, надовезивање за позитивну вредност)
+ -reset: ресетовање вредности опције
+ -unset: уклањање опције
+ -set: додавање /set команде на улаз како би се уредила вредност опције (курсор се помера на почетак вредности)
+ -setnew: додавање /set команде на улаз како би се уредила нова вредност за опцију
+ -append: додавање /set команде како би се нешто надовезало на вредност опције (курсор се помера на крај вредности)
+ -mark: пребацивање маркера
+ -format: прелаз на следећи доступан формат
+ -export: извоз опција и вредности које су приказане у фајлу (свака линија има формат: „/set име вредност” или „/unset име”)
+ -help: форсирање уписивања помоћи за опције које се извозе у фајл (погледајте /help fset.look.export_help_default)
+ -nohelp: не уписује помоћ за опције које се извозе у фајл (погледајте /help fset.look.export_help_default)
+ filter: постављање новог филтера тако да се прикажу само опције које се подударају са њим (овај филтер такође може да се користи и као улаз у fset бафер); дозвољени су следећи формати:
+ * приказивање свих опција (без филтера)
+ xxx приказивање само опција са „xxx” у имену
+ f:xxx приказивање само конфигурационог фајла „xxx”
+ t:xxx приказивање само типа „xxx” (bool/int/str/col)
+ d приказивање само измењених опција
+ d:xxx приказивање само измењених опција са „xxx” у имену
+ d=xxx приказивање само измењених опција са „xxx” у вредности
+ d==xxx приказивање само измењених опција са тачном вредности „xxx”
+ h=xxx приказивање само опција са „xxx” у опису (преведеном)
+ he=xxx приказивање само опција са „xxx” у опцију (на енглеском)
+ =xxx приказивање опција само са „xxx” у вредности
+ ==xxx приказивање опција само са тачном вредности „xxx”
+ c:xxx приказивање опција које се подударају са израчунатим условом „xxx”, уз коришћење следећих променљивих: file, section, option, name, parent_name, type, type_en, type_short (bool/int/str/col), type_tiny (b/i/s/c), default_value, default_value_undef, value, quoted_value, value_undef, value_changed, parent_value, min, max, description, description2, description_en, description_en2, string_values
+
+Линије са опцијама се приказују употребом израчунавања стринга (погледајте /help eval за формат), са следећим опцијама:
+ - fset.format.option1: први формат за опцију
+ - fset.format.option2: други формат за опцију
+
+У овим опцијама је дозвољена употреба следећих променљивих:
+ - подаци опције, са бојом и допуњени размацима са десне стране:
+ - ${file}: конфигурациони фајл (на пример „weechat” или „irc”)
+ - ${section}: одељак
+ - ${option}: име опције
+ - ${name}: пуно име опције (file.section.option)
+ - ${parent_name}: име родитељ-опције
+ - ${type}: тип опције (преведени)
+ - ${type_en}: тип опције (на енглеском)
+ - ${type_short}: кратки тип опције (bool/int/str/col)
+ - ${type_tiny}: сићушни тип опције (b/i/s/c)
+ - ${default_value}: подразумевана вредност опције
+ - ${default_value_undef}: „1” ако је подразумевана вредност null, у супротном „0”
+ - ${value}: вредност опције
+ - ${value_undef}: „1” ако је вредност null, у супротном „0”
+ - ${value_changed}: „1” ако се вредност разликује од подразумеване вредности, у супротном „0”
+ - ${value2}: вредност опције, са наслеђеном вредности ако је null
+ - ${parent_value}: вредност родитељ-опције
+ - ${min}: мин вредност
+ - ${max}: макс вредност
+ - ${description}: опис опције (преведен)
+ - ${description2}: опис опције (преведен), „(без описа)” (преведено) ако нема описа
+ - ${description_en}: опис опције (на енглеском)
+ - ${description_en2}: опис опције (на енглеском), „(no description)” ако нема описа
+ - ${string_values}: стринг вредности које се дозвољавају за постављање целобројне опције употребом стрингова
+ - ${marked}: „1” ако је опција маркирана, у супротном „0”
+ - ${index}: индекс опције у листи
+ - подаци опције, са бојом али без додатних размака:
+ - иста имена испред којих се налази доња црта, на пример: ${_name}, ${_type}, ...
+ - подаци опције, у сировом формату (без боја/размака):
+ - иста имена испред којих се налазе две доње црте, на пример: ${__name}, ${__type}, ...
+ - подаци опције, само размаци:
+ - иста имена испред којих се налази „empty_”, на пример: ${empty_name}, ${empty_type}
+ - остали подаци:
+ - ${selected_line}: „1” ако је линија изабрана, у супротном „0”
+ - ${newline}: умеће прелом линије на ову позицију, тако да се опција простире на више линија
+
+Тастери и унос којим се врши кретање по fset баферу:
+ up једна линија навише
+ down једна линија наниже
+ pgup једна линија страница навише
+ pgdn једна линија страница наниже
+ alt-home << прелаз на прву линију
+ alt-end >> прелаз на последњу линију
+ F11 < хоризонтално скроловање у лево
+ F12 > хоризонтално скроловање у десно
+
+Тастеру у унос за постављање опција у fset баферу:
+ alt+space t пребацивање логичке вредности
+ alt+'-' - умањивање целобројне вредности/боја за 1, постављање вредности за остале типове
+ alt+'+' + увећање целобројне вредности/боје за 1, надовезивање вредности за остале типове
+ alt+f, alt+r r ресетовање вредности
+ alt+f, alt+u u уклањање вредности
+ alt+enter s постављање вредности
+ alt+f, alt+n n постављање нове вредности
+ alt+f, alt+a a надовезивање вредности
+ alt+',' , маркирање/уклањање маркера са опције
+ shift+up померање за линију навише и маркирање/уклањање маркера са опције
+ shift+down маркирање/уклањање маркера са опције и померање за линију наниже
+ m:xxx маркирање приказаних опција које задовољавају услов филтера „xxx” (дозвољен је било који филтер на опцији или вредности, погледајте filters изнад)
+ u:xxx уклања маркирање приказаних опција које задовољавају услов филтера „xxx” дозвољен је било који филтер на опцији или вредности, погледајте filters изнад)
+
+Остали тастери и улаз у fset баферу:
+ ctrl+L освежавање опција и комплетног екрана (команда: /fset -refresh)
+ $ освежавање опција (маркиране опције остају маркиране)
+ $$ освежавање опција (маркирање се уклања са свих опција)
+ alt+p p пребацивање видљивости описа опција додатака (plugins.desc.*)
+ alt+v v пребацивање видљивости траке помоћи
+ s:x,y сортирање опција према пољима x,y (погледајте /help fset.look.sort)
+ s: ресетовање сортирања на подразумевану вредност (погледајте /help fset.look.sort)
+ w:xxx извоз опција у фајл „xxx”
+ w-:xxx извоз опција у фајл „xxx” без помоћи
+ w+:xxx извоз опција у фајл „xxx” заједно са помоћи
+ ctrl+X x пребацивање формата који се користи за приказ опција
+ q затварање fset бафера
+
+Акције миша у fset баферу:
+ точкић горе/доле померање линију навише/наниже
+ леви тастер померање линије на то место
+ десни тастер пребацивање логичке вредности (укљ./искљ.) или уређивање вредности
+ десни тастер + превлачење л/д увећавање/умањивање целобројне вредности/боје, постављање/надовезивање на вредност за остале типове
+ десни тастер + превлачење г/д маркирање/уклањање маркирања са више опција одједном
+
+Напомена: ако улаз има један или више водећих размака, текст који следи се интерпретира као филтер, без размака. На пример „ q” претражује све опције које у свом имену имају „q” док „q” затвара fset бафер.
+
+Примери:
+ приказивање измењених IRC опција:
+ /fset d:irc.*
+ приказивање свих опција које у имену садрже „nicklist”:
+ /fset nicklist
+ приказивање свих вредности које садрже реч „red”:
+ /fset =red
+ приказивање свих вредности које су тачно „red”:
+ /fset ==red
+ приказивање свих целобројних опција у irc додатку:
+ /fset c:${file} == irc && ${type_en} == integer
+----
+// end::fset_commands[]
+
+// tag::guile_commands[]
+[[command_guile_guile]]
+* `+guile+`: испис/учитавање/уклањање скрипти
+
+----
+/guile list|listfull [<име>]
+ load [-q] <имефајла>
+ autoload
+ reload|unload [-q] [<име>]
+ eval [-o|-oc] <кôд>
+ version
+
+ list: испис учитаних скрипти
+listfull: испис учитаних скрипти (детаљно)
+ load: учитавање скрипте
+autoload: учитавање свих скрипти из „autoload” директоријума
+ reload: поновно учитавање скрипте (ако се не наведе име, све скрипте се уклањају из меморије, па се затим учитавају све скрипте из „autoload” директоријума)
+ unload: уклањање скрипте из меморије (ако се не наведе име, из меморије се уклањају све скрипте)
+имефајла: скрипта (фајл) који треба да се учита
+ -q: тихи режим: не приказују се никакве поруке
+ име: име скрипте (име употребљено у позиву функције „register”)
+ eval: израчунавање изворног кода и приказ резултата у текућем баферу
+ -o: слање резултата израчунавања у бафер без извршавања команди
+ -oc: слање резултата израчунавања у бафер и извршавање команди
+ кôд: изворни кôд који треба да се израчуна
+ version: приказује верзију интерпретера који се користи
+
+Без аргумента ова функција исписује све учитане скрипте.
+----
+// end::guile_commands[]
+
+// tag::javascript_commands[]
+[[command_javascript_javascript]]
+* `+javascript+`: испис/учитавање/уклањање скрипти
+
+----
+/javascript list|listfull [<име>]
+ load [-q] <имефајла>
+ autoload
+ reload|unload [-q] [<име>]
+ eval [-o|-oc] <кôд>
+ version
+
+ list: испис учитаних скрипти
+listfull: испис учитаних скрипти (детаљно)
+ load: учитавање скрипте
+autoload: учитавање свих скрипти из „autoload” директоријума
+ reload: поновно учитавање скрипте (ако се не наведе име, све скрипте се уклањају из меморије, па се затим учитавају све скрипте из „autoload” директоријума)
+ unload: уклањање скрипте из меморије (ако се не наведе име, из меморије се уклањају све скрипте)
+имефајла: скрипта (фајл) који треба да се учита
+ -q: тихи режим: не приказују се никакве поруке
+ име: име скрипте (име употребљено у позиву функције „register”)
+ eval: израчунавање изворног кода и приказ резултата у текућем баферу
+ -o: слање резултата израчунавања у бафер без извршавања команди
+ -oc: слање резултата израчунавања у бафер и извршавање команди
+ кôд: изворни кôд који треба да се израчуна
+ version: приказује верзију интерпретера који се користи
+
+Без аргумента ова функција исписује све учитане скрипте.
+----
+// end::javascript_commands[]
+
+// tag::logger_commands[]
+[[command_logger_logger]]
+* `+logger+`: логер конфигурације додатка
+
+----
+/logger list
+ set <ниво>
+ flush
+ disable
+
+ list: приказ статуса логовања за отворене бафере
+ set: постављање нивоа логовања за текући бафер
+ ниво: ниво за поруке које се логују (0 = логовање је искључено, 1 = неколико порука (најважнијих) ... 9 = све поруке)
+ flush: тренутни упис свих лог фајлова
+disable: искључивање логовања за текући бафер (поставља се ниво на 0)
+
+Опције „logger.level.*” и „logger.mask.*” могу да се користе за постављање нивоа или маске за бафер или бафере који почињу именом.
+
+Лог нивои које користи IRC додатак:
+ 1: корисничка порука (са канала и приватна), обавештење (са сервера и канала)
+ 2: измена надимка
+ 3: серверска порука
+ 4: join/part/quit
+ 9: све остале поруке
+
+Примери:
+ постављање нивоа на 5 за текући бафер:
+ /logger set 5
+ искључивање логовања за текући бафер:
+ /logger disable
+ постављање нивоа на 3 за све IRC бафере:
+ /set logger.level.irc 3
+ искључивање логовања за главни WeeChat бафер:
+ /set logger.level.core.weechat 0
+ употреба одвојеног директоријума за сваки IRC сервер и унутар њега фајла за сваки канал:
+ /set logger.mask.irc „$server/$channel.weechatlog”
+----
+// end::logger_commands[]
+
+// tag::lua_commands[]
+[[command_lua_lua]]
+* `+lua+`: испис/учитавање/уклањање скрипти
+
+----
+/lua list|listfull [<име>]
+ load [-q] <имефајла>
+ autoload
+ reload|unload [-q] [<име>]
+ eval [-o|-oc] <кôд>
+ version
+
+ list: испис учитаних скрипти
+listfull: испис учитаних скрипти (детаљно)
+ load: учитавање скрипте
+autoload: учитавање свих скрипти из „autoload” директоријума
+ reload: поновно учитавање скрипте (ако се не наведе име, све скрипте се уклањају из меморије, па се затим учитавају све скрипте из „autoload” директоријума)
+ unload: уклањање скрипте из меморије (ако се не наведе име, из меморије се уклањају све скрипте)
+имефајла: скрипта (фајл) који треба да се учита
+ -q: тихи режим: не приказују се никакве поруке
+ име: име скрипте (име употребљено у позиву функције „register”)
+ eval: израчунавање изворног кода и приказ резултата у текућем баферу
+ -o: слање резултата израчунавања у бафер без извршавања команди
+ -oc: слање резултата израчунавања у бафер и извршавање команди
+ кôд: изворни кôд који треба да се израчуна
+ version: приказује верзију интерпретера који се користи
+
+Без аргумента ова функција исписује све учитане скрипте.
+----
+// end::lua_commands[]
+
+// tag::xfer_commands[]
+[[command_xfer_me]]
+* `+me+`: слање CTCP акције удаљеном хосту
+
+----
+/me <порука>
+
+порука: порука која се шаље
+----
+
+[[command_xfer_xfer]]
+* `+xfer+`: xfer контрола
+
+----
+/xfer [list|listfull]
+
+ list: листа xfer
+listfull: листа xfer (детаљна)
+
+Без аргумента ова команда отвара бафер са xfer листом.
+----
+// end::xfer_commands[]
+
+// tag::perl_commands[]
+[[command_perl_perl]]
+* `+perl+`: испис/учитавање/уклањање скрипти
+
+----
+/perl list|listfull [<име>]
+ load [-q] <имефајла>
+ autoload
+ reload|unload [-q] [<име>]
+ eval [-o|-oc] <кôд>
+ version
+
+ list: испис учитаних скрипти
+listfull: испис учитаних скрипти (детаљно)
+ load: учитавање скрипте
+autoload: учитавање свих скрипти из „autoload” директоријума
+ reload: поновно учитавање скрипте (ако се не наведе име, све скрипте се уклањају из меморије, па се затим учитавају све скрипте из „autoload” директоријума)
+ unload: уклањање скрипте из меморије (ако се не наведе име, из меморије се уклањају све скрипте)
+имефајла: скрипта (фајл) који треба да се учита
+ -q: тихи режим: не приказују се никакве поруке
+ име: име скрипте (име употребљено у позиву функције „register”)
+ eval: израчунавање изворног кода и приказ резултата у текућем баферу
+ -o: слање резултата израчунавања у бафер без извршавања команди
+ -oc: слање резултата израчунавања у бафер и извршавање команди
+ кôд: изворни кôд који треба да се израчуна
+ version: приказује верзију интерпретера који се користи
+
+Без аргумента ова функција исписује све учитане скрипте.
+----
+// end::perl_commands[]
+
+// tag::php_commands[]
+[[command_php_php]]
+* `+php+`: испис/учитавање/уклањање скрипти
+
+----
+/php list|listfull [<име>]
+ load [-q] <имефајла>
+ autoload
+ reload|unload [-q] [<име>]
+ eval [-o|-oc] <кôд>
+ version
+
+ list: испис учитаних скрипти
+listfull: испис учитаних скрипти (детаљно)
+ load: учитавање скрипте
+autoload: учитавање свих скрипти из „autoload” директоријума
+ reload: поновно учитавање скрипте (ако се не наведе име, све скрипте се уклањају из меморије, па се затим учитавају све скрипте из „autoload” директоријума)
+ unload: уклањање скрипте из меморије (ако се не наведе име, из меморије се уклањају све скрипте)
+имефајла: скрипта (фајл) који треба да се учита
+ -q: тихи режим: не приказују се никакве поруке
+ име: име скрипте (име употребљено у позиву функције „register”)
+ eval: израчунавање изворног кода и приказ резултата у текућем баферу
+ -o: слање резултата израчунавања у бафер без извршавања команди
+ -oc: слање резултата израчунавања у бафер и извршавање команди
+ кôд: изворни кôд који треба да се израчуна
+ version: приказује верзију интерпретера који се користи
+
+Без аргумента ова функција исписује све учитане скрипте.
+----
+// end::php_commands[]
+
+// tag::python_commands[]
+[[command_python_python]]
+* `+python+`: испис/учитавање/уклањање скрипти
+
+----
+/python list|listfull [<име>]
+ load [-q] <имефајла>
+ autoload
+ reload|unload [-q] [<име>]
+ eval [-o|-oc] <кôд>
+ version
+
+ list: испис учитаних скрипти
+listfull: испис учитаних скрипти (детаљно)
+ load: учитавање скрипте
+autoload: учитавање свих скрипти из „autoload” директоријума
+ reload: поновно учитавање скрипте (ако се не наведе име, све скрипте се уклањају из меморије, па се затим учитавају све скрипте из „autoload” директоријума)
+ unload: уклањање скрипте из меморије (ако се не наведе име, из меморије се уклањају све скрипте)
+имефајла: скрипта (фајл) који треба да се учита
+ -q: тихи режим: не приказују се никакве поруке
+ име: име скрипте (име употребљено у позиву функције „register”)
+ eval: израчунавање изворног кода и приказ резултата у текућем баферу
+ -o: слање резултата израчунавања у бафер без извршавања команди
+ -oc: слање резултата израчунавања у бафер и извршавање команди
+ кôд: изворни кôд који треба да се израчуна
+ version: приказује верзију интерпретера који се користи
+
+Без аргумента ова функција исписује све учитане скрипте.
+----
+// end::python_commands[]
+
+// tag::relay_commands[]
+[[command_relay_relay]]
+* `+relay+`: контрола релеја
+
+----
+/relay list|listfull|listrelay
+ add <име> <порт>|<путања>
+ del|start|restart|stop <име>
+ raw
+ sslcertkey
+
+ list: испис клијената релеја (само активних релеја)
+ listfull: испис клијената релеја (детаљно, свих релеја)
+ listrelay: испис релеја (име и порт)
+ add: додавање релеја (слуша на порту/путањи)
+ del: уклањање релеја (клијенти остају повезани)
+ start: слушање на порту
+ restart: затварање сервер сокета и поновно слушање на порту (клијенти остају повезани)
+ stop: затварање серверског сокета (клијенти остају повезани)
+ име: име релеја (see format below)
+ порт: порт који се користи за релеј
+ путања: путања која се користи за релеј (само за UNIX доменске сокете); путања се израчунава (погледајте функцију string_eval_path_home у референтном приручнику API додатака)
+ raw: отварање бафера са сировим Релеј подацима
+ sslcertkey: постављање SSL сертификата/кључа употребом путање у опцији relay.network.ssl_cert_key
+
+Име релеја је: [ipv4.][ipv6.][ssl.]<име.протокола> или unix.[ssl.]<име.протокола>
+ ipv4: форсира се употреба IPv4
+ ipv6: форсира се употреба IPv6
+ ssl: укључивање SSL
+ unix: користи се UNIX доменски сокет
+име.протокола: протокол и име за релеј:
+ - протокол „irc”: име је сервер који се дели (није обавезно, ако се не наведе, име сервера мора да се пошаље клијенту у команди „PASS”, са форматом: „PASS сервер:лозинка”)
+ - протокол „weechat” (име се не користи)
+
+„irc” протокол дозвољава да се било који IRC клијент (укључујући и сам WeeChat) повеже на порт.
+„weechat” протокол дозвољава да се на порт повеже удаљени интерфејс, погледајте листу овде: https://weechat.org/about/interfaces
+
+Без аргумента ова команда отвара бафер са листом релеј клијената.
+
+Примери:
+ irc прокси, за сервер „libera”:
+ /relay add irc.libera 8000
+ irc прокси, за сервер „libera”, за SSL:
+ /relay add ssl.irc.libera 8001
+ irc прокси, за све сервере (клијент ће га изабрати), са SSL:
+ /relay add ssl.irc 8002
+ weechat протокол:
+ /relay add weechat 9000
+ weechat протокол са SSL:
+ /relay add ssl.weechat 9001
+ weechat протокол са SSL, само преко IPv4:
+ /relay add ipv4.ssl.weechat 9001
+ weechat протокол са SSL, само преко IPv6:
+ /relay add ipv6.ssl.weechat 9001
+ weechat протокол са SSL, преко IPv4 + IPv6:
+ /relay add ipv4.ipv6.ssl.weechat 9001
+ weechat протокол преко UNIX доменског сокета:
+ /relay add unix.weechat %h/relay_socket
+----
+// end::relay_commands[]
+
+// tag::ruby_commands[]
+[[command_ruby_ruby]]
+* `+ruby+`: испис/учитавање/уклањање скрипти
+
+----
+/ruby list|listfull [<име>]
+ load [-q] <имефајла>
+ autoload
+ reload|unload [-q] [<име>]
+ eval [-o|-oc] <кôд>
+ version
+
+ list: испис учитаних скрипти
+listfull: испис учитаних скрипти (детаљно)
+ load: учитавање скрипте
+autoload: учитавање свих скрипти из „autoload” директоријума
+ reload: поновно учитавање скрипте (ако се не наведе име, све скрипте се уклањају из меморије, па се затим учитавају све скрипте из „autoload” директоријума)
+ unload: уклањање скрипте из меморије (ако се не наведе име, из меморије се уклањају све скрипте)
+имефајла: скрипта (фајл) који треба да се учита
+ -q: тихи режим: не приказују се никакве поруке
+ име: име скрипте (име употребљено у позиву функције „register”)
+ eval: израчунавање изворног кода и приказ резултата у текућем баферу
+ -o: слање резултата израчунавања у бафер без извршавања команди
+ -oc: слање резултата израчунавања у бафер и извршавање команди
+ кôд: изворни кôд који треба да се израчуна
+ version: приказује верзију интерпретера који се користи
+
+Без аргумента ова функција исписује све учитане скрипте.
+----
+// end::ruby_commands[]
+
+// tag::script_commands[]
+[[command_script_script]]
+* `+script+`: Менаџер WeeChat скрипти
+
+----
+/script list [-o|-ol|-i|-il]
+ search <текст>
+ show <скрипта>
+ load|unload|reload <скрипта> [<скрипта>...]
+ autoload|noautoload|toggleautoload <скрипта> [<скрипта>...]
+ install|remove|installremove|hold [-q] <скрипта> [<скрипта>...]
+ upgrade
+ update
+
+ list: испис учитаних скрипти (на свим језицима)
+ -o: слање листе учитаних скрипти у бафер (стринг на енглеском)
+ -ol: слање листе учитаних скрипти у бафер (преведени стринг)
+ -i: копирање листе учитаних скрипти у командну линију (за слање у бафер) (стринг на енглеском)
+ -il: копирање листе учитаних скрипти у командну линију (за слање у бафер) (преведени стринг)
+ search: претрага скрипти по ознакама, језику (python, perl, ...), екстензији фајла (py, pl, ...) или тексту; резултат се приказује у скрипт баферу
+ show: приказ детаљних информација о скрипти
+ load: учитавање скрипт(е/и)
+ unload: уклањање скрипт(е/и) из меморије
+ reload: поновно учитавање скрипт(е/и)
+ autoload: аутоматско учитавање скрипт(е/и)
+ noautoload: скрипт(а/е) се не учитавају аутоматски
+toggleautoload: пребацивање аутоматског учитавања
+ install: инсталација/ажурирање скрипт(е/и)
+ remove: брисање скрипт(е/и)
+ installremove: инсталација или уклањање скрипт(е/и), зависно од тренутног стања
+ hold: задржавање/пуштање скрипт(е/и) (задржана скрипта се неће више ажурирати и не може да се обрише)
+ -q: тихи режим: поруке се не исписују
+ upgrade: ажурирање свих инсталираних скрипти које су застареле (доступна је нова верзија)
+ update: ажурирање кеша локалних скрипти
+
+Без аргумента ова команда отвара бафер са листом скрипти.
+
+У скрипт баферу је могући статус сваке од скрипти је:
+ * i a H r N
+ | | | | | |
+ | | | | | застарела (доступна је новија верзија)
+ | | | | извршава се (учитана)
+ | | | задржана
+ | | аутоучитана
+ | инсталирана
+ популарна скрипта
+
+У излазу команде /script list, могући статус сваке од скрипти је:
+ * ? i a H N
+ | | | | | |
+ | | | | | застарела (доступна је новија верзија)
+ | | | | задржана
+ | | | аутоучитана
+ | | инсталирана
+ | непозната скрипта (не може да се преузме/ажурира)
+ популарна скрипта
+
+Тастери у скрипт баферу:
+ alt+i инсталација скрипте
+ alt+r брисање скрипте
+ alt+l учитавање скрипте
+ alt+L поновно учитавање скрипте
+ alt+u уклањање скрипте из меморије
+ alt+A аутоучитавање скрипте
+ alt+h задржавање/пуштање скрипте
+ alt+v преглед скрипте
+
+Дозвољени унос у скрипт баферу:
+ i/r/l/L/u/A/h/v акција над скриптом (исто као тастери изнад)
+ q затварање бафера
+ $ освежавање бафера
+ s:x,y сортирање бафера употребом тастера x и y (погледајте /help script.look.sort)
+ s: ресетовање сортирања (користиће се подразумевано сортирање)
+ реч(и) филтрирање скрипти: претрага на реч(и) у скриптама (опис, ознаке, ...)
+ * уклањање филтера
+
+Акције мишем у скрипт баферу:
+ точкић скроловање листе
+ леви тастер избор скрипте
+ десни тастер инсталирање/брисање скрипте
+
+Примери:
+ /script search url
+ /script install go.py urlserver.py
+ /script remove go.py
+ /script hold urlserver.py
+ /script reload urlserver
+ /script upgrade
+----
+// end::script_commands[]
+
+// tag::spell_commands[]
+[[command_spell_spell]]
+* `+spell+`: конфигурација додатка spell
+
+----
+/spell enable|disable|toggle
+ listdict
+ setdict <речн>[,<речн>...]
+ deldict
+ addword [<речн>] <реч>
+
+ enable: укључивање програма за проверу правописа
+ disable: искључивање програма за проверу правописа
+ toggle: пребацивање програма за проверу правописа
+listdict: приказ инсталираних речника
+ setdict: постављање речника за текући бафер (више речника може да се раздвоји запетама)
+ deldict: брисање речника који се користи за текући бафер
+ addword: додавање речи у лични речник
+
+Линије уноса које почињу са ’/’ се не проверавају, осим за неке команде (погледајте /set spell.check.commands).
+
+Ако желите да укључите програм за проверу правописа у свим баферима, употребите опцију „default_dict”, па затим укључите програм за проверу правописа, на пример:
+ /set spell.check.default_dict „en”
+ /spell enable
+
+Ако желите да се у траци прикаже листа предлога, употребите ставку „spell_suggest”.
+
+Подразумевани тастер за пребацивање програма за проверу правописа је alt-s.
+----
+// end::spell_commands[]
+
+// tag::tcl_commands[]
+[[command_tcl_tcl]]
+* `+tcl+`: испис/учитавање/уклањање скрипти
+
+----
+/tcl list|listfull [<име>]
+ load [-q] <имефајла>
+ autoload
+ reload|unload [-q] [<име>]
+ eval [-o|-oc] <кôд>
+ version
+
+ list: испис учитаних скрипти
+listfull: испис учитаних скрипти (детаљно)
+ load: учитавање скрипте
+autoload: учитавање свих скрипти из „autoload” директоријума
+ reload: поновно учитавање скрипте (ако се не наведе име, све скрипте се уклањају из меморије, па се затим учитавају све скрипте из „autoload” директоријума)
+ unload: уклањање скрипте из меморије (ако се не наведе име, из меморије се уклањају све скрипте)
+имефајла: скрипта (фајл) који треба да се учита
+ -q: тихи режим: не приказују се никакве поруке
+ име: име скрипте (име употребљено у позиву функције „register”)
+ eval: израчунавање изворног кода и приказ резултата у текућем баферу
+ -o: слање резултата израчунавања у бафер без извршавања команди
+ -oc: слање резултата израчунавања у бафер и извршавање команди
+ кôд: изворни кôд који треба да се израчуна
+ version: приказује верзију интерпретера који се користи
+
+Без аргумента ова функција исписује све учитане скрипте.
+----
+// end::tcl_commands[]
+
+// tag::trigger_commands[]
+[[command_trigger_trigger]]
+* `+trigger+`: управљање окидачима, ножем швајцарске војске програма WeeChat
+
+----
+/trigger list|listfull|listdefault
+ add|addoff|addreplace <име> <кука> ["<аргументи>" ["<услови>" ["<регуларни_израз>" ["<команда>" ["<повр_кôд>" ["<пост_акција>"]]]]]]
+ addinput [<кука>]
+ input|output|recreate <име>
+ set <име> <опција> <вредност>
+ rename|copy <име> <ново_име>
+ enable|disable|toggle [<име>|-all [<име>...]]
+ restart <име>|-all [<име>...]
+ show <име>
+ del <име>|-all [<име>...]
+ restore <име> [<име>...]
+ default -yes
+ monitor [<филтер>]
+
+ list: листа окидача (без аргумента се приказује ова листа)
+ listfull: листа окидача са детаљним инфо о сваком окидачу
+listdefault: листа подразумеваних окидача
+ add: додавање окидача
+ addoff: додавање окидача (искљученог)
+ addreplace: додавање или замена постојећег окидача
+ име: име окидача
+ кука: signal, hsignal, modifier, line, print, command, command_run, timer, config, focus, info, info_hashtable
+ аргументи: аргументи за куку, у зависности од куке (раздвојени тачка запетама):
+ signal: име(на) signal-а (обавезно)
+ hsignal: име(на) hsignal-а (обавезно)
+ modifier: име(на) modifier-а (обавезно)
+ line: тип бафера („formatted”, „free” или „*”), листа маски бафера, ознака
+ print: бафер, ознаке, порука, уклањање боја
+ command: команда (обавезна), опис, аргументи, опис аргумената, довршавање (сви аргументи осим command се израчунавају, „${tg_trigger_name}” се замењује именом окидача, погледајте /help eval)
+ command_run: команд(а/е) (обавезно)
+ timer: интервал (обавезан), поравнање на секунди, макс позива
+ config: име(на) опције (обавезно)
+ focus: име(на) површине (обавезно)
+ info: име(на) информације (обавезно)
+ info_hashtable: име(на) информације (обавезно)
+ услови: израчунати услови за окидач
+ регизраз: један или више регуларних израза за замену стрингова у променљивама
+ команда: команда која треба да се изврши (више команди може да се раздвоји са „;”)
+ повр_кôд: повратни кôд у функцији повратног позива (ok (подраз), ok_eat, error)
+пост_акција: акција која се покреће након извршавања (none (подраз), disable, delete)
+ addinput: постављање улаза на подразумеване аргументе да се креира окидач
+ input: постављање улаза на команду која је употребљена за креирање окидача
+ output: слање команде за креирање окидача у бафер
+ recreate: исто као „input”, са опцијом „addreplace” уместо „add”
+ set: постављање опције у окидачу
+ опција: име опције: name, hook, arguments, conditions, regex, command, return_code
+ (за помоћ у вези опције, можете да откуцате: /help trigger.trigger.<име>.<опција>)
+ вредност: нова вредност опције
+ rename: промена имена окидача
+ copy: копирање окидача
+ enable: укључивање окидача (без аргумената: окидачи се укључују глобално)
+ disable: искључивање окидача (без аргумената: окидачи се искључују глобално)
+ toggle: пребацивање окидача (без аргумената: окидачи се пребацују глобално)
+ restart: поновно покретање окидача (куке се поново креирају)
+ show: приказ детаљних информација о окидачу (са мало статистике)
+ del: брисање окидача
+ -all: извршавање акције над свим окидачима
+ restore: обнављање окидача са подразумеваним вредностима (функционише само за подразумеване окидаче)
+ default: брисање свих окидача и обнављање подразумеваних
+ monitor: отварање бафера за праћење окидача, са необавезним филтером:
+ филтер: филтрирање кука/окидача који се приказују (кука мора да почиње са „@”, на пример „@signal”), више филтера може да се раздвоји запетама; дозвољен је џокер „*” у сваком имену окидача
+
+Када се позове функција повратног позива окидача, извршавају се следеће акције, у наведеном редоследу:
+ 1. провера услова; ако је нетачно, напушта се
+ 2. замена текста употребом POSIX проширених регуларних израза (ако су дефинисани у окидачу)
+ 3. извршавање команд(е/и) (ако су дефинисане у окидачу)
+ 4. излазак са повратним кодом (осим за modifier, line, focus, info и info_hashtable)
+ 5. извршавање пост акције
+
+Примери (такође можете да погледате садржај подразумеваних окидача са /trigger listdefault):
+ додавање текст атрибута *подебљано*, _подвучено и /курзив/ (само у корисничким порукама):
+ /trigger add effects modifier weechat_print „${tg_tag_nick}” "==\*([^ ]+)\*==*${color:bold}${re:1}${color:-bold}*== ==_([^ ]+)_==_${color:underline}${re:1}${color:-underline}_== ==/([^ ]+)/==/${color:italic}${re:1}${color:-italic}/"
+ сакривање траке листе надимака на малим терминалима:
+ /trigger add resize_small signal signal_sigwinch "${info:term_width} < 100" "" "/bar hide nicklist"
+ /trigger add resize_big signal signal_sigwinch "${info:term_width} >= 100" "" "/bar show nicklist"
+ чување конфигурације на сваки сат, у тишини:
+ /trigger add cfgsave timer 3600000;0;0 "" "" "/mute /save"
+ отварање монитора окидача и приказ само модификатора и окидача чије име почиње са „resize”:
+ /trigger monitor @modifier,resize*
+----
+// end::trigger_commands[]
diff --git a/doc/sr/includes/autogen_user_default_aliases.sr.adoc b/doc/sr/includes/autogen_user_default_aliases.sr.adoc
new file mode 100644
index 000000000..5d38cbb9c
--- /dev/null
+++ b/doc/sr/includes/autogen_user_default_aliases.sr.adoc
@@ -0,0 +1,44 @@
+//
+// This file is auto-generated by script docgen.py.
+// DO NOT EDIT BY HAND!
+//
+
+// tag::default_aliases[]
+[width="100%",cols="2m,5m,5",options="header"]
+|===
+| Alias | Команда | Довршавање
+
+| /AAWAY | /allserv /away | -
+| /ANICK | /allserv /nick | -
+| /BEEP | /print -beep | -
+| /BYE | /quit | -
+| /C | /buffer clear | -
+| /CL | /buffer clear | -
+| /CLOSE | /buffer close | -
+| /CHAT | /dcc chat | -
+| /EXIT | /quit | -
+| /IG | /ignore | -
+| /J | /join | -
+| /K | /kick | -
+| /KB | /kickban | -
+| /LEAVE | /part | -
+| /M | /msg | -
+| /MUB | /unban * | -
+| /MSGBUF | /command -buffer $1 * /input send $2- | %(buffers_plugins_names)
+| /N | /names | -
+| /Q | /query | -
+| /REDRAW | /window refresh | -
+| /SAY | /msg * | -
+| /SIGNOFF | /quit | -
+| /T | /topic | -
+| /UB | /unban | -
+| /UMODE | /mode $nick | -
+| /V | /command core version | -
+| /W | /who | -
+| /WC | /window close | -
+| /WI | /whois | -
+| /WII | /whois $1 $1 | -
+| /WM | /window merge | -
+| /WW | /whowas | -
+|===
+// end::default_aliases[]
diff --git a/doc/sr/includes/autogen_user_irc_colors.sr.adoc b/doc/sr/includes/autogen_user_irc_colors.sr.adoc
new file mode 100644
index 000000000..30d6139eb
--- /dev/null
+++ b/doc/sr/includes/autogen_user_irc_colors.sr.adoc
@@ -0,0 +1,112 @@
+//
+// This file is auto-generated by script docgen.py.
+// DO NOT EDIT BY HAND!
+//
+
+// tag::irc_colors[]
+[width="50%",cols="^2m,3",options="header"]
+|===
+| IRC боја | WeeChat боја
+
+| 00 | white
+| 01 | black
+| 02 | blue
+| 03 | green
+| 04 | lightred
+| 05 | red
+| 06 | magenta
+| 07 | brown
+| 08 | yellow
+| 09 | lightgreen
+| 10 | cyan
+| 11 | lightcyan
+| 12 | lightblue
+| 13 | lightmagenta
+| 14 | darkgray
+| 15 | gray
+| 16 | 52
+| 17 | 94
+| 18 | 100
+| 19 | 58
+| 20 | 22
+| 21 | 29
+| 22 | 23
+| 23 | 24
+| 24 | 17
+| 25 | 54
+| 26 | 53
+| 27 | 89
+| 28 | 88
+| 29 | 130
+| 30 | 142
+| 31 | 64
+| 32 | 28
+| 33 | 35
+| 34 | 30
+| 35 | 25
+| 36 | 18
+| 37 | 91
+| 38 | 90
+| 39 | 125
+| 40 | 124
+| 41 | 166
+| 42 | 184
+| 43 | 106
+| 44 | 34
+| 45 | 49
+| 46 | 37
+| 47 | 33
+| 48 | 19
+| 49 | 129
+| 50 | 127
+| 51 | 161
+| 52 | 196
+| 53 | 208
+| 54 | 226
+| 55 | 154
+| 56 | 46
+| 57 | 86
+| 58 | 51
+| 59 | 75
+| 60 | 21
+| 61 | 171
+| 62 | 201
+| 63 | 198
+| 64 | 203
+| 65 | 215
+| 66 | 227
+| 67 | 191
+| 68 | 83
+| 69 | 122
+| 70 | 87
+| 71 | 111
+| 72 | 63
+| 73 | 177
+| 74 | 207
+| 75 | 205
+| 76 | 217
+| 77 | 223
+| 78 | 229
+| 79 | 193
+| 80 | 157
+| 81 | 158
+| 82 | 159
+| 83 | 153
+| 84 | 147
+| 85 | 183
+| 86 | 219
+| 87 | 212
+| 88 | 16
+| 89 | 233
+| 90 | 235
+| 91 | 237
+| 92 | 239
+| 93 | 241
+| 94 | 244
+| 95 | 247
+| 96 | 250
+| 97 | 254
+| 98 | 231
+| 99 | default
+|===
+// end::irc_colors[]
diff --git a/doc/sr/includes/autogen_user_options.sr.adoc b/doc/sr/includes/autogen_user_options.sr.adoc
new file mode 100644
index 000000000..ff1d11e7b
--- /dev/null
+++ b/doc/sr/includes/autogen_user_options.sr.adoc
@@ -0,0 +1,3918 @@
+//
+// This file is auto-generated by script docgen.py.
+// DO NOT EDIT BY HAND!
+//
+
+// tag::sec_options[]
+* [[option_sec.crypt.cipher]] *sec.crypt.cipher*
+** опис: pass:none[шифра која се користи за шифрирање података (број након алгоритма је величина кључа у битовима)]
+** тип: целобројна
+** вредности: aes128, aes192, aes256
+** подразумевана вредност: `+aes256+`
+
+* [[option_sec.crypt.hash_algo]] *sec.crypt.hash_algo*
+** опис: pass:none[хеш алгоритам који се користи за проверу дешифрованих података]
+** тип: целобројна
+** вредности: sha224, sha256, sha384, sha512
+** подразумевана вредност: `+sha256+`
+
+* [[option_sec.crypt.passphrase_command]] *sec.crypt.passphrase_command*
+** опис: pass:none[чита тајну реченицу са излаза ове системске команде (користи се само прва линија и она не сме да садржи никакав додатни карактер); ова опција се користи само када се чита фајл sec.conf и ако није постављена променљива окружења „WEECHAT_PASSPHRASE” (променљива окружења има виши приоритет); пример са сефом лозинки: „/usr/bin/pass show weechat/passphrase”]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+""+`
+
+* [[option_sec.crypt.salt]] *sec.crypt.salt*
+** опис: pass:none[када се генерише кључ који се користи у шифрирању, употребљава се со (препоручује се за максималну сигурност); када је укључено садржај шифрованих података у фајлу sec.conf ће се разликовати приликом сваког уписа у фајл; ако фајл sec.conf чувате у систему за контролу верзија, онда ову опцију можете да искључите и тако увек имате исти садржај у фајлу]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+// end::sec_options[]
+
+// tag::weechat_options[]
+* [[option_weechat.color.bar_more]] *weechat.color.bar_more*
+** опис: pass:none[боја текста за „+” када се траке скролују]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+lightmagenta+`
+
+* [[option_weechat.color.chat]] *weechat.color.chat*
+** опис: pass:none[боја текста за разговор]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+default+`
+
+* [[option_weechat.color.chat_bg]] *weechat.color.chat_bg*
+** опис: pass:none[боја позадине за разговор]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+default+`
+
+* [[option_weechat.color.chat_buffer]] *weechat.color.chat_buffer*
+** опис: pass:none[боја текста за имена бафера]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+white+`
+
+* [[option_weechat.color.chat_channel]] *weechat.color.chat_channel*
+** опис: pass:none[боја текста за имена канала]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+white+`
+
+* [[option_weechat.color.chat_day_change]] *weechat.color.chat_day_change*
+** опис: pass:none[боја текста за поруку која се приказује при промени дана]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+cyan+`
+
+* [[option_weechat.color.chat_delimiters]] *weechat.color.chat_delimiters*
+** опис: pass:none[боја текста за граничнике]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+green+`
+
+* [[option_weechat.color.chat_highlight]] *weechat.color.chat_highlight*
+** опис: pass:none[боја текста за истакнути префикс]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+yellow+`
+
+* [[option_weechat.color.chat_highlight_bg]] *weechat.color.chat_highlight_bg*
+** опис: pass:none[боја позадине за истакнути префикс]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+magenta+`
+
+* [[option_weechat.color.chat_host]] *weechat.color.chat_host*
+** опис: pass:none[боја текста за имена хостова]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+cyan+`
+
+* [[option_weechat.color.chat_inactive_buffer]] *weechat.color.chat_inactive_buffer*
+** опис: pass:none[боја текста за разговор када је линија неактивна (бафер је спојен са другим баферима и није изабран)]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+default+`
+
+* [[option_weechat.color.chat_inactive_window]] *weechat.color.chat_inactive_window*
+** опис: pass:none[боја текста за разговор када је прозора неактиван (није тренутно изабрани прозор)]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+default+`
+
+* [[option_weechat.color.chat_nick]] *weechat.color.chat_nick*
+** опис: pass:none[боја текста за надимке у прозору разговора: користи се у неким серверским порукама и као последња опција у случају да се не пронађе боја за надимак; боја надимка у највећем броју случајева долази из опције option weechat.color.chat_nick_colors]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+lightcyan+`
+
+* [[option_weechat.color.chat_nick_colors]] *weechat.color.chat_nick_colors*
+** опис: pass:none[боја текста за надимке (листа боја раздвојених зарезима, дозвољена је и позадина у формату: „пп:по”, for example: „lightred:blue”)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"cyan,magenta,green,brown,lightblue,default,lightcyan,lightmagenta,lightgreen,blue"+`
+
+* [[option_weechat.color.chat_nick_offline]] *weechat.color.chat_nick_offline*
+** опис: pass:none[боја текста за надимак који није на мрежи (више није у листи надимака); ова боја се користи само онда када је опција weechat.look.color_nick_offline укључена]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+default+`
+
+* [[option_weechat.color.chat_nick_offline_highlight]] *weechat.color.chat_nick_offline_highlight*
+** опис: pass:none[боја текста за надимак ван мреже, а који се истиче; ова боја се користи само онда када је опција weechat.look.color_nick_offline укључена]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+default+`
+
+* [[option_weechat.color.chat_nick_offline_highlight_bg]] *weechat.color.chat_nick_offline_highlight_bg*
+** опис: pass:none[боја позадине за надимак ван мреже, а који се истиче; ова боја се користи само онда када је опција weechat.look.color_nick_offline укључена]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+blue+`
+
+* [[option_weechat.color.chat_nick_other]] *weechat.color.chat_nick_other*
+** опис: pass:none[боја текста за други надимак у приватном баферу]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+cyan+`
+
+* [[option_weechat.color.chat_nick_prefix]] *weechat.color.chat_nick_prefix*
+** опис: pass:none[боја префикса надимка (стринг који се приказује испред надимка у префиксу)]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+green+`
+
+* [[option_weechat.color.chat_nick_self]] *weechat.color.chat_nick_self*
+** опис: pass:none[боја текста за локални надимак у прозору разговора]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+white+`
+
+* [[option_weechat.color.chat_nick_suffix]] *weechat.color.chat_nick_suffix*
+** опис: pass:none[боја суфикса надимка (стринг који се приказује иза надимка у префиксу)]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+green+`
+
+* [[option_weechat.color.chat_prefix_action]] *weechat.color.chat_prefix_action*
+** опис: pass:none[боја текста за префикс акције]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+white+`
+
+* [[option_weechat.color.chat_prefix_buffer]] *weechat.color.chat_prefix_buffer*
+** опис: pass:none[боја текста за име бафера (испред префикса, када је више бафера спојено под једним бројем)]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+brown+`
+
+* [[option_weechat.color.chat_prefix_buffer_inactive_buffer]] *weechat.color.chat_prefix_buffer_inactive_buffer*
+** опис: pass:none[боја текста за име неактивног бафера (испред префикса, када је више бафера спојено под једним бројем и бафер није изабран)]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+default+`
+
+* [[option_weechat.color.chat_prefix_error]] *weechat.color.chat_prefix_error*
+** опис: pass:none[боја текста за префикс грешке]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+yellow+`
+
+* [[option_weechat.color.chat_prefix_join]] *weechat.color.chat_prefix_join*
+** опис: pass:none[боја текста са префикс приступања]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+lightgreen+`
+
+* [[option_weechat.color.chat_prefix_more]] *weechat.color.chat_prefix_more*
+** опис: pass:none[боја текста за „+” када је префикс сувише дугачак]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+lightmagenta+`
+
+* [[option_weechat.color.chat_prefix_network]] *weechat.color.chat_prefix_network*
+** опис: pass:none[боја текста за мрежни префикс]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+magenta+`
+
+* [[option_weechat.color.chat_prefix_quit]] *weechat.color.chat_prefix_quit*
+** опис: pass:none[боја текста за префикс напуштања]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+lightred+`
+
+* [[option_weechat.color.chat_prefix_suffix]] *weechat.color.chat_prefix_suffix*
+** опис: pass:none[боја текста за суфикс (иза префикса)]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+green+`
+
+* [[option_weechat.color.chat_read_marker]] *weechat.color.chat_read_marker*
+** опис: pass:none[боја текста за маркер непрочитаних података]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+magenta+`
+
+* [[option_weechat.color.chat_read_marker_bg]] *weechat.color.chat_read_marker_bg*
+** опис: pass:none[боја позадине за маркер непрочитаних података]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+default+`
+
+* [[option_weechat.color.chat_server]] *weechat.color.chat_server*
+** опис: pass:none[боја текста за имена сервера]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+brown+`
+
+* [[option_weechat.color.chat_tags]] *weechat.color.chat_tags*
+** опис: pass:none[боја текста за ознаке након порука (приказаних командом /debug tags)]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+red+`
+
+* [[option_weechat.color.chat_text_found]] *weechat.color.chat_text_found*
+** опис: pass:none[боја текста за маркер на линијама у којима је тражени текст пронађен]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+yellow+`
+
+* [[option_weechat.color.chat_text_found_bg]] *weechat.color.chat_text_found_bg*
+** опис: pass:none[боја позадине за маркер на линијама у којима је тражени текст пронађен]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+lightmagenta+`
+
+* [[option_weechat.color.chat_time]] *weechat.color.chat_time*
+** опис: pass:none[боја текста за време у прозору разговора]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+default+`
+
+* [[option_weechat.color.chat_time_delimiters]] *weechat.color.chat_time_delimiters*
+** опис: pass:none[боја текста за граничнике времена]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+brown+`
+
+* [[option_weechat.color.chat_value]] *weechat.color.chat_value*
+** опис: pass:none[боја текста за вредности]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+cyan+`
+
+* [[option_weechat.color.chat_value_null]] *weechat.color.chat_value_null*
+** опис: pass:none[боја текста за null вредности (недефинисане)]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+blue+`
+
+* [[option_weechat.color.emphasized]] *weechat.color.emphasized*
+** опис: pass:none[боја текста за наглашени текст (на пример, када се претражује текст); ова опција се користи само онда када је опција weechat.look.emphasized_attributes празан стринг (што је и подразумевана вредност)]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+yellow+`
+
+* [[option_weechat.color.emphasized_bg]] *weechat.color.emphasized_bg*
+** опис: pass:none[боја позадине за наглашени текст (на пример, када се претражује текст); ова опција се користи само онда када је опција weechat.look.emphasized_attributes празан стринг (што је и подразумевана вредност)]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+magenta+`
+
+* [[option_weechat.color.input_actions]] *weechat.color.input_actions*
+** опис: pass:none[боја текста за акције у линији уноса]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+lightgreen+`
+
+* [[option_weechat.color.input_text_not_found]] *weechat.color.input_text_not_found*
+** опис: pass:none[боја текста за неуспешну претрагу текста у линији уноса]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+red+`
+
+* [[option_weechat.color.item_away]] *weechat.color.item_away*
+** опис: pass:none[боја текста за ставку одсутности]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+yellow+`
+
+* [[option_weechat.color.nicklist_away]] *weechat.color.nicklist_away*
+** опис: pass:none[боја текста за надимке који су одсутни]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+cyan+`
+
+* [[option_weechat.color.nicklist_group]] *weechat.color.nicklist_group*
+** опис: pass:none[боја текста за групе у листи надимака]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+green+`
+
+* [[option_weechat.color.separator]] *weechat.color.separator*
+** опис: pass:none[боја за граничнике прозора (када су подељени) и граничнике поред трака (као што је листа надимака)]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+blue+`
+
+* [[option_weechat.color.status_count_highlight]] *weechat.color.status_count_highlight*
+** опис: pass:none[боја текста за укупан број истакнутих порука у врућој листи (статусна трака)]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+magenta+`
+
+* [[option_weechat.color.status_count_msg]] *weechat.color.status_count_msg*
+** опис: pass:none[боја текста за укупан број порука у врућој листи (статусна линија)]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+brown+`
+
+* [[option_weechat.color.status_count_other]] *weechat.color.status_count_other*
+** опис: pass:none[боја текста за укупан број осталих порука у врућој листи (статусна линија)]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+default+`
+
+* [[option_weechat.color.status_count_private]] *weechat.color.status_count_private*
+** опис: pass:none[боја текста за укупан број приватних порука у врућој листи (статусна трака)]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+green+`
+
+* [[option_weechat.color.status_data_highlight]] *weechat.color.status_data_highlight*
+** опис: pass:none[боја текста за бафер са истицањем (статусна трака)]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+lightmagenta+`
+
+* [[option_weechat.color.status_data_msg]] *weechat.color.status_data_msg*
+** опис: pass:none[боја текста за бафер са новим порукама (статусна трака)]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+yellow+`
+
+* [[option_weechat.color.status_data_other]] *weechat.color.status_data_other*
+** опис: pass:none[боја текста за бафер са новим подацима (што нису поруке) (статусна трака)]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+default+`
+
+* [[option_weechat.color.status_data_private]] *weechat.color.status_data_private*
+** опис: pass:none[боја текста за бафер са приватном поруком (статусна трака)]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+lightgreen+`
+
+* [[option_weechat.color.status_filter]] *weechat.color.status_filter*
+** опис: pass:none[боја текста за индикатор филтера у статусној траци]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+green+`
+
+* [[option_weechat.color.status_more]] *weechat.color.status_more*
+** опис: pass:none[боја текста за бафер са новим подацима (статусна трака)]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+yellow+`
+
+* [[option_weechat.color.status_mouse]] *weechat.color.status_mouse*
+** опис: pass:none[боја текста за индикатор миша у статусној траци]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+green+`
+
+* [[option_weechat.color.status_name]] *weechat.color.status_name*
+** опис: pass:none[боја текста за име текућег бафера у статусној траци]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+white+`
+
+* [[option_weechat.color.status_name_ssl]] *weechat.color.status_name_ssl*
+** опис: pass:none[боја текста за име текућег бафера у статусној траци, у случају да су подаци обезбеђени протоколом као што је SSL]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+lightgreen+`
+
+* [[option_weechat.color.status_nicklist_count]] *weechat.color.status_nicklist_count*
+** опис: pass:none[боја текста за укупан број надимака у листи надимака (статусна трака)]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+default+`
+
+* [[option_weechat.color.status_number]] *weechat.color.status_number*
+** опис: pass:none[боја текста за број текућег бафера у статусној траци]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+yellow+`
+
+* [[option_weechat.color.status_time]] *weechat.color.status_time*
+** опис: pass:none[боја текста за време (статусна трака)]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+default+`
+
+* [[option_weechat.completion.base_word_until_cursor]] *weechat.completion.base_word_until_cursor*
+** опис: pass:none[ако је укључено, на карактеру испред курсора се завршава базна реч која треба да се доврши; у супротном се базна реч завршава на првом размаку након курсора]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_weechat.completion.command_inline]] *weechat.completion.command_inline*
+** опис: pass:none[ако је укључено, команде у командној линији се довршавају (команда на почетку линије има виши приоритет и прва се користи); напомена: када се ова опција укључи, више се не врши аутоматско довршавање путања које почињу са „/” (ван аргумената команде)]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_weechat.completion.default_template]] *weechat.completion.default_template*
+** опис: pass:none[подразумевани шаблон довршавања (молимо вас да погледајте документацију у вези кодова шаблона и вредности: референтно упутство API додатака, функција „weechat_hook_command”)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"%(nicks)|%(irc_channels)"+`
+
+* [[option_weechat.completion.nick_add_space]] *weechat.completion.nick_add_space*
+** опис: pass:none[додавање размака након довршавања надимка (када надимак није прва реч на командној линији)]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_weechat.completion.nick_case_sensitive]] *weechat.completion.nick_case_sensitive*
+** опис: pass:none[довршавање надимака води рачуна о величини слова]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+off+`
+
+* [[option_weechat.completion.nick_completer]] *weechat.completion.nick_completer*
+** опис: pass:none[стринг који се умеће након довршавања надимка (када је надимак прва реч у командној линији)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+": "+`
+
+* [[option_weechat.completion.nick_first_only]] *weechat.completion.nick_first_only*
+** опис: pass:none[довршава се само први пронађени надимак]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+off+`
+
+* [[option_weechat.completion.nick_ignore_chars]] *weechat.completion.nick_ignore_chars*
+** опис: pass:none[карактери који се игноришу при довршавању надимка]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"[]`_-^"+`
+
+* [[option_weechat.completion.partial_completion_alert]] *weechat.completion.partial_completion_alert*
+** опис: pass:none[шаље упозорење (BEL) када се догоди делимично довршавање]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_weechat.completion.partial_completion_command]] *weechat.completion.partial_completion_command*
+** опис: pass:none[делимично довршавање имена команди (зауставља се када се пронађе више команда које почињу истим словима)]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+off+`
+
+* [[option_weechat.completion.partial_completion_command_arg]] *weechat.completion.partial_completion_command_arg*
+** опис: pass:none[делимично довршавање аргумената команде (зауставља се када се пронађе више аргумената са истим префиксом)]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+off+`
+
+* [[option_weechat.completion.partial_completion_count]] *weechat.completion.partial_completion_count*
+** опис: pass:none[у ставки траке се приказује укупан број за свако делимично довршавање]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_weechat.completion.partial_completion_other]] *weechat.completion.partial_completion_other*
+** опис: pass:none[делимично довршавање ван команди (зауставља се када се пронађе више речи које почињу истим словима)]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+off+`
+
+* [[option_weechat.completion.partial_completion_templates]] *weechat.completion.partial_completion_templates*
+** опис: pass:none[листа шаблона раздвојених запетама за које је делимично довршавање подразумевано укључено (тастером Tab уместо са shift-Tab); листа шаблон се налази у документацији: API референтно упутство за додатке, функција „weechat_hook_command”]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"config_options"+`
+
+* [[option_weechat.history.display_default]] *weechat.history.display_default*
+** опис: pass:none[максимални број команди које се подразумевано приказују у списку историје (0 = без ограничења)]
+** тип: целобројна
+** вредности: 0 .. 2147483647
+** подразумевана вредност: `+5+`
+
+* [[option_weechat.history.max_buffer_lines_minutes]] *weechat.history.max_buffer_lines_minutes*
+** опис: pass:none[максимални број минута у историји по баферу (0 = без ограничења); примери: 1440 = један дан, 10080 = једна недеља, 43200 = једна месец, 525600 = једна година; користите 0 САМО у случају да опција weechat.history.max_buffer_lines_number НИЈЕ постављена на 0]
+** тип: целобројна
+** вредности: 0 .. 2147483647
+** подразумевана вредност: `+0+`
+
+* [[option_weechat.history.max_buffer_lines_number]] *weechat.history.max_buffer_lines_number*
+** опис: pass:none[максимални број линија у историји по баферу (0 = без ограничења); користите 0 САМО када опција weechat.history.max_buffer_lines_minutes НИЈЕ постављена на 0]
+** тип: целобројна
+** вредности: 0 .. 2147483647
+** подразумевана вредност: `+4096+`
+
+* [[option_weechat.history.max_commands]] *weechat.history.max_commands*
+** опис: pass:none[максимални број корисничких команди у историји (0 = без ограничења, НЕ ПРЕПОРУЧУЈЕ СЕ: нема ограничења употребе меморије)]
+** тип: целобројна
+** вредности: 0 .. 2147483647
+** подразумевана вредност: `+100+`
+
+* [[option_weechat.history.max_visited_buffers]] *weechat.history.max_visited_buffers*
+** опис: pass:none[максимални број посећених бафера који се чува у меморији]
+** тип: целобројна
+** вредности: 0 .. 1000
+** подразумевана вредност: `+50+`
+
+* [[option_weechat.look.align_end_of_lines]] *weechat.look.align_end_of_lines*
+** опис: pass:none[поравнање за крајеве линија (све линије након прве): оне почињу испод ових података (време, бафер, префикс, суфикс, порука (подразумевано))]
+** тип: целобројна
+** вредности: time, buffer, prefix, suffix, message
+** подразумевана вредност: `+message+`
+
+* [[option_weechat.look.align_multiline_words]] *weechat.look.align_multiline_words*
+** опис: pass:none[поравнање за вишелинијске речи сагласно са опцијом weechat.look.align_end_of_lines; ако је искључено, вишелинијске речи неће бити поравнате, што може бити корисно да се не преломе дугачке URL адресе]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_weechat.look.bar_more_down]] *weechat.look.bar_more_down*
+** опис: pass:none[стринг који се приказује када трака може да се скролује наниже (за траке чије се испуна разликује од „horizontal”)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"++"+`
+
+* [[option_weechat.look.bar_more_left]] *weechat.look.bar_more_left*
+** опис: pass:none[стринг који се приказује када трака може да се скролује у лево (за траке чија је испуна „horizontal”)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"<<"+`
+
+* [[option_weechat.look.bar_more_right]] *weechat.look.bar_more_right*
+** опис: pass:none[стринг који се приказује када трака може да се скролује у десно (за траке чија је испуна „horizontal”)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+">>"+`
+
+* [[option_weechat.look.bar_more_up]] *weechat.look.bar_more_up*
+** опис: pass:none[стринг који се приказује када трака може да се скролује навише (за траке чија се испуна разликује од „horizontal”)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"--"+`
+
+* [[option_weechat.look.bare_display_exit_on_input]] *weechat.look.bare_display_exit_on_input*
+** опис: pass:none[режим огољеног приказа се напушта при било каквој промени уноса]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_weechat.look.bare_display_time_format]] *weechat.look.bare_display_time_format*
+** опис: pass:none[формат времена у режиму огољеног приказа (погледајте man strftime за спецификаторе датума/времена)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"%H:%M"+`
+
+* [[option_weechat.look.buffer_auto_renumber]] *weechat.look.buffer_auto_renumber*
+** опис: pass:none[аутоматска ренумерација бафера тако да постоје само суседни бројеви и да почињу од 1; ако је искључено, дозвољени су размаци између бројева бафера и први бафер може да има број већи од 1]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_weechat.look.buffer_notify_default]] *weechat.look.buffer_notify_default*
+** опис: pass:none[подразумевани ниво обавештавања за бафере (користи се да програму WeeChat каже да ли бафер мора да се прикаже у врућој листи или не, сагласно томе колика је важност поруке): all=све поруке (подразумевано), message=поруке+истицања, highlight=само истицања, none=никада се не приказује у врућој листи]
+** тип: целобројна
+** вредности: none, highlight, message, all
+** подразумевана вредност: `+all+`
+
+* [[option_weechat.look.buffer_position]] *weechat.look.buffer_position*
+** опис: pass:none[позиција новог бафера: end = након краја листе (number = последњи број + 1) (подразумевано), first_gap = на првом доступном броју у листи (након краја листе, у случају да није доступан ниједан број); ова опција се користи само ако бафер нема броја распореда]
+** тип: целобројна
+** вредности: end, first_gap
+** подразумевана вредност: `+end+`
+
+* [[option_weechat.look.buffer_search_case_sensitive]] *weechat.look.buffer_search_case_sensitive*
+** опис: pass:none[подразумевана текст претрага у баферу: прави се разлика у величини слова или не]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+off+`
+
+* [[option_weechat.look.buffer_search_force_default]] *weechat.look.buffer_search_force_default*
+** опис: pass:none[форсира подразумеване вредности за претрагу текста у баферу (уместо да се користе вредности последње претраге у баферу)]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+off+`
+
+* [[option_weechat.look.buffer_search_regex]] *weechat.look.buffer_search_regex*
+** опис: pass:none[подразумевана претрага текста у баферу: ако је укључено, тражи се према POSIX проширеном регуларном изразу, у супротном према простом стрингу претраге]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+off+`
+
+* [[option_weechat.look.buffer_search_where]] *weechat.look.buffer_search_where*
+** опис: pass:none[подразумевана претрага текста у баферу: у поруци, префиксу, префиксу и поруци]
+** тип: целобројна
+** вредности: prefix, message, prefix_message
+** подразумевана вредност: `+prefix_message+`
+
+* [[option_weechat.look.buffer_time_format]] *weechat.look.buffer_time_format*
+** опис: pass:none[формат времена за сваку линију која се приказује у баферима (погледајте man strftime за спецификаторе датума/времена) (напомена: садржај се израчунава, тако да са форматом можете да користите и боје „${color:xxx}”, погледајте /help eval); на пример, време употребом скале сивих (неопходна је подршка за 256 боја): „${color:252}%H${color:245}%M${color:240}%S”]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"%H:%M:%S"+`
+
+* [[option_weechat.look.buffer_time_same]] *weechat.look.buffer_time_same*
+** опис: pass:none[време приказано за поруку са истим временом као и претходна порука: употребите размак „ ” да сакријете време, неки други стринг који желите да се прикаже уместо времена, или празан стринг којим се могућност искључује (приказ времена) (напомена: садржај се израчунава, тако да уз формат можете да користите у боје „${color:xxx}”, погледајте /help eval)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+""+`
+
+* [[option_weechat.look.color_basic_force_bold]] *weechat.look.color_basic_force_bold*
+** опис: pass:none[форсира атрибут „подебљано” за светле боје и „darkgray” у основним бојама (ова опција је подразумевано искључена: подебљано се користи само ако терминал подржава мање од 16 боја)]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+off+`
+
+* [[option_weechat.look.color_inactive_buffer]] *weechat.look.color_inactive_buffer*
+** опис: pass:none[за линије неактивног бафера се користи различита боја (када је линија из спојеног бафера који није изабран)]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_weechat.look.color_inactive_message]] *weechat.look.color_inactive_message*
+** опис: pass:none[за неактивну поруку се користи различита боја (када прозор није текући прозор, или ако је линија из спојеног бафера који није изабран)]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_weechat.look.color_inactive_prefix]] *weechat.look.color_inactive_prefix*
+** опис: pass:none[за неактиван префикс се користи различита боја (када прозор није текући прозор, или ако је линија из спојеног бафера који није изабран)]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_weechat.look.color_inactive_prefix_buffer]] *weechat.look.color_inactive_prefix_buffer*
+** опис: pass:none[за име неактивног бафера у префиксу се користи различита боја (када прозор није текући прозор, или ако је линија из спојеног бафера који није изабран)]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_weechat.look.color_inactive_time]] *weechat.look.color_inactive_time*
+** опис: pass:none[за неактивно време се користи различита боја (када прозор није текући прозор, или ако је линија из спојеног бафера који није изабран)]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+off+`
+
+* [[option_weechat.look.color_inactive_window]] *weechat.look.color_inactive_window*
+** опис: pass:none[за линије у неактивном прозору се користи различита боја (када прозор није текући прозор)]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_weechat.look.color_nick_offline]] *weechat.look.color_nick_offline*
+** опис: pass:none[за надимке који нису на мрежи се користи различита боја (више нису на листи надимака)]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+off+`
+
+* [[option_weechat.look.color_pairs_auto_reset]] *weechat.look.color_pairs_auto_reset*
+** опис: pass:none[табела парова боја се аутоматски ресетује када је број доступних боја мањи или једнак овом броју (-1 = искључује аутоматско ресетовање, па је тада потребно ручно „/color reset” када је табела пуна)]
+** тип: целобројна
+** вредности: -1 .. 256
+** подразумевана вредност: `+5+`
+
+* [[option_weechat.look.color_real_white]] *weechat.look.color_real_white*
+** опис: pass:none[ако је постављено, користи се права бела боја, подразумевано је искључено за терминале са белом позадином (ако уопште не користите белу позадину, требало би да укључите ову опцију да бисте уместо подразумеване терминалове боје предњег плана видели праву белу)]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+off+`
+
+* [[option_weechat.look.command_chars]] *weechat.look.command_chars*
+** опис: pass:none[карактери који се користе за одређивање да ли је улазни стринг команда или не: улаз мора да почне једним од наведених карактера; коса црта („/”) се увек узима као префикс команде (пример: „.$”)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+""+`
+
+* [[option_weechat.look.command_incomplete]] *weechat.look.command_incomplete*
+** опис: pass:none[ако је постављено, дозвољене су недовршене или двосмислене команде, на пример /he за /help]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+off+`
+
+* [[option_weechat.look.confirm_quit]] *weechat.look.confirm_quit*
+** опис: pass:none[ако је постављено, /quit команда мора да се потврди додатним аргументом „-yes” (погледајте /help quit)]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+off+`
+
+* [[option_weechat.look.confirm_upgrade]] *weechat.look.confirm_upgrade*
+** опис: pass:none[ако је постављено, команда /upgrade мора да се потврди додатним аргументом „-yes” (погледајте /help upgrade)]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+off+`
+
+* [[option_weechat.look.day_change]] *weechat.look.day_change*
+** опис: pass:none[приказ специјалне поруке када се мења дан]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_weechat.look.day_change_message_1date]] *weechat.look.day_change_message_1date*
+** опис: pass:none[порука која се приказује када се промени дан, са приказаним једним датумом (на пример, на почетку бафера) (погледајте man strftime за спецификаторе датума/времена) (напомена: садржај се израчунава, тако да можете користити боје у формату „${color:xxx}”, погледајте /help eval)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"-- %a, %d %b %Y --"+`
+
+* [[option_weechat.look.day_change_message_2dates]] *weechat.look.day_change_message_2dates*
+** опис: pass:none[порука која се приказује када се промени дан, са приказаним два датума (између две поруке); спецификатор другог датума мора да почне са два „%” јер се над овим стрингом strftime позива два пута (погледајте man strftime за спецификаторе датума/времена) (напомена: садржај се израчунава, тако да можете користити боје у формату „${color:xxx}”, погледајте /help eval)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"-- %%a, %%d %%b %%Y (%a, %d %b %Y) --"+`
+
+* [[option_weechat.look.eat_newline_glitch]] *weechat.look.eat_newline_glitch*
+** опис: pass:none[ако је постављено, eat_newline_glitch ће да се постави на 0; ово се користи да се на крај линије сваке не дода карактер нова линија, па да се текст не преломи када копирате/налепите текст из програма WeeChat у неку другу апликацију (ова опција је подразумевано искључена јер може да буде узрок озбиљних проблема са приказом)]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+off+`
+
+* [[option_weechat.look.emphasized_attributes]] *weechat.look.emphasized_attributes*
+** опис: pass:none[атрибути за наглашени текст: један или више карактера атрибута („*” за подебљано, „!” обрнуто, „/” за курзив, „_” за подвучено); ако је стринг празан, користе се боје дефинисане са weechat.color.emphasized*]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+""+`
+
+* [[option_weechat.look.highlight]] *weechat.look.highlight*
+** опис: pass:none[листа речи које се истичу раздвојених запетама; поређење не прави разлику у величини слова (употребите „(?-i)” на почетку речи ако желите да се величина слова узима у обзир), речи могу да почну или да се заврше са „*” чиме се добија делимично подударање; пример: „test,(?-i)*toto*,flash*”]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+""+`
+
+* [[option_weechat.look.highlight_regex]] *weechat.look.highlight_regex*
+** опис: pass:none[POSIX проширени регуларни израз који се користи за проверу да ли порука садржи истицање или не, барем једно подударање мора бити окружено граничницима (карактери који се разликују од: алфанумерика, „-”, „_” и „|”), регуларни израз не прави разлику у величини слова (употребите „(?-i)” не почетку ако желите да се величина слова узима у обзир), примери: „flashcode|flashy”, „(?-i)FlashCode|flashy”]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+""+`
+
+* [[option_weechat.look.highlight_tags]] *weechat.look.highlight_tags*
+** опис: pass:none[листа ознака које се истичу раздвојених запетама; поређење не прави разлику у величини слова; у свакој ознаки је дозвољен џокер „*”; „+” може да раздвоји више ознака чиме се наводи логичко „и” међу ознакама; примери: „nick_flashcode” за поруку од надимка „FlashCode”, „irc_notice+nick_toto*” за обавештења од надимка који почиње са „toto”]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+""+`
+
+* [[option_weechat.look.hotlist_add_conditions]] *weechat.look.hotlist_add_conditions*
+** опис: pass:none[услови под којима се бафер додаје у врућу листу (ако је за бафер ниво обавештавања одговарајући); можете да користите следеће услове: „window” (показивач на текући прозор), „buffer” (показивач на бафер који треба да се дода у врућу листу), „priority” (0 = низак, 1 = порука, 2 = приватно, 3 = истицање); подразумевано је да се бафер додаје на врућу листу ако сте одсутни, или ако се бафер не види на екрану (не приказује се ни у једном прозору), или ако је барем један релеј клијент повезан преко weechat протокола]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"${away} || ${buffer.num_displayed} == 0 || ${info:relay_client_count,weechat,connected} > 0"+`
+
+* [[option_weechat.look.hotlist_buffer_separator]] *weechat.look.hotlist_buffer_separator*
+** опис: pass:none[стринг који се приказује између бафера у врућој листи]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+", "+`
+
+* [[option_weechat.look.hotlist_count_max]] *weechat.look.hotlist_count_max*
+** опис: pass:none[максималан број порука који се приказује у врућој листи за бафер: 0 = никада се не приказује број порука, други број = приказује се максимално N порука (од највишег до најнижег приоритета)]
+** тип: целобројна
+** вредности: 0 .. 4
+** подразумевана вредност: `+2+`
+
+* [[option_weechat.look.hotlist_count_min_msg]] *weechat.look.hotlist_count_min_msg*
+** опис: pass:none[приказује број порука у случају да је укупан број порука већи или једнак овој вредности]
+** тип: целобројна
+** вредности: 1 .. 100
+** подразумевана вредност: `+2+`
+
+* [[option_weechat.look.hotlist_names_count]] *weechat.look.hotlist_names_count*
+** опис: pass:none[максимални број имена у врућој листи (0 = не приказује се ниједно име, само бројеви бафера)]
+** тип: целобројна
+** вредности: 0 .. 10000
+** подразумевана вредност: `+3+`
+
+* [[option_weechat.look.hotlist_names_length]] *weechat.look.hotlist_names_length*
+** опис: pass:none[макс дужина имена у врућој листи (0 = нема ограничења)]
+** тип: целобројна
+** вредности: 0 .. 32
+** подразумевана вредност: `+0+`
+
+* [[option_weechat.look.hotlist_names_level]] *weechat.look.hotlist_names_level*
+** опис: pass:none[ниво за приказивање имена у врућој листи (комбинација: 1=join/part, 2=порука, 4=приватно, 8=истицање, на пример: 12=приватно+истицање)]
+** тип: целобројна
+** вредности: 1 .. 15
+** подразумевана вредност: `+12+`
+
+* [[option_weechat.look.hotlist_names_merged_buffers]] *weechat.look.hotlist_names_merged_buffers*
+** опис: pass:none[ако је постављено, форсира приказ имена у врућој листи за спојене бафере]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+off+`
+
+* [[option_weechat.look.hotlist_prefix]] *weechat.look.hotlist_prefix*
+** опис: pass:none[текст који се приказује на почетку вруће листе]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"H: "+`
+
+* [[option_weechat.look.hotlist_remove]] *weechat.look.hotlist_remove*
+** опис: pass:none[уклања бафере из вруће листе: buffer = уклања бафер по бафер, merged = уклања све видљиве спојене бафере одједном]
+** тип: целобројна
+** вредности: buffer, merged
+** подразумевана вредност: `+merged+`
+
+* [[option_weechat.look.hotlist_short_names]] *weechat.look.hotlist_short_names*
+** опис: pass:none[ако је постављено, користи кратка имена за приказ имена бафера у врућој листи (почињу након првог „.” у имену)]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_weechat.look.hotlist_sort]] *weechat.look.hotlist_sort*
+** опис: pass:none[сортирање вруће листе: group_time_*: груписање по нивоу обавештавања (прво истицања) па онда сортирање по времену, group_number_*: груписање по нивоу обавештавања (прво истицања) па онда сортирање по броју, number_*: сортирање по броју; asc = растући редослед, desc = опадајући редослед]
+** тип: целобројна
+** вредности: group_time_asc, group_time_desc, group_number_asc, group_number_desc, number_asc, number_desc
+** подразумевана вредност: `+group_time_asc+`
+
+* [[option_weechat.look.hotlist_suffix]] *weechat.look.hotlist_suffix*
+** опис: pass:none[текст који се приказује на крају вруће листе]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+""+`
+
+* [[option_weechat.look.hotlist_unique_numbers]] *weechat.look.hotlist_unique_numbers*
+** опис: pass:none[задржава у врућој листи само јединствене бројеве (ово се односи само ставке вруће листе за које се након броја НЕ приказује име)]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_weechat.look.hotlist_update_on_buffer_switch]] *weechat.look.hotlist_update_on_buffer_switch*
+** опис: pass:none[ажурирање вруће листе када се прелази на други бафер]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_weechat.look.input_cursor_scroll]] *weechat.look.input_cursor_scroll*
+** опис: pass:none[број карактера који се приказују након краја линије уноса када се скролује тако да се прикаже крај линије]
+** тип: целобројна
+** вредности: 0 .. 100
+** подразумевана вредност: `+20+`
+
+* [[option_weechat.look.input_share]] *weechat.look.input_share*
+** опис: pass:none[за улаз свих бафера се деле команде, текст или оба (и даље постоји локална историја за сваки бафер)]
+** тип: целобројна
+** вредности: none, commands, text, all
+** подразумевана вредност: `+none+`
+
+* [[option_weechat.look.input_share_overwrite]] *weechat.look.input_share_overwrite*
+** опис: pass:none[ако је постављено и улаз се дели, увек се преписује унос у циљном баферу]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+off+`
+
+* [[option_weechat.look.input_undo_max]] *weechat.look.input_undo_max*
+** опис: pass:none[макс број „поништавања” за командну линију, по баферу (0 = поништавање је искључено)]
+** тип: целобројна
+** вредности: 0 .. 65535
+** подразумевана вредност: `+32+`
+
+* [[option_weechat.look.item_away_message]] *weechat.look.item_away_message*
+** опис: pass:none[приказивање серверске поруке о одсутности у ставки одсутности траке]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_weechat.look.item_buffer_filter]] *weechat.look.item_buffer_filter*
+** опис: pass:none[стринг који се користи за обавештавање да су неке линије у текућем баферу филтриране (ставка траке „buffer_filter”)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"*"+`
+
+* [[option_weechat.look.item_buffer_zoom]] *weechat.look.item_buffer_zoom*
+** опис: pass:none[стринг који се користи да покаже зум на спојени бафер (ставка траке „buffer_zoom”)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"!"+`
+
+* [[option_weechat.look.item_mouse_status]] *weechat.look.item_mouse_status*
+** опис: pass:none[стринг који се корити да покаже стање миша (ставка траке „mouse_status”)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"M"+`
+
+* [[option_weechat.look.item_time_format]] *weechat.look.item_time_format*
+** опис: pass:none[формат времена за „time” ставку траке (погледајте man strftime за спецификаторе датума/времена) (напомена: садржај се израчунава, тако да можете користите боје у формату „${color:xxx}”, погледајте /help eval)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"%H:%M"+`
+
+* [[option_weechat.look.jump_current_to_previous_buffer]] *weechat.look.jump_current_to_previous_buffer*
+** опис: pass:none[скок на претходни бафер који је био приказан када се скаче на број текућег бафера са /buffer *N (где је N број бафера), чиме је могуће једноставно пребацивање на други бафер, па повратак на текући бафер]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_weechat.look.jump_previous_buffer_when_closing]] *weechat.look.jump_previous_buffer_when_closing*
+** опис: pass:none[скок на претходно посећени бафер када се бафер затвара (ако је искључено, онда се скаче на бафер број - 1)]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_weechat.look.jump_smart_back_to_buffer]] *weechat.look.jump_smart_back_to_buffer*
+** опис: pass:none[скок назад на почетни бафер када се достигне крај вруће листе]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_weechat.look.key_bind_safe]] *weechat.look.key_bind_safe*
+** опис: pass:none[дозвољава се везивање само „сигурних” тастера (који почињу са ctrl или meta кодом)]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_weechat.look.key_grab_delay]] *weechat.look.key_grab_delay*
+** опис: pass:none[подразумевано кашњење (у милисекундама) за хватање тастера (користећи подразумевани тастер alt-k); ово кашњење може да се премости у команди /input (погледајте /help input)]
+** тип: целобројна
+** вредности: 1 .. 10000
+** подразумевана вредност: `+800+`
+
+* [[option_weechat.look.mouse]] *weechat.look.mouse*
+** опис: pass:none[укључује подршку за миша]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+off+`
+
+* [[option_weechat.look.mouse_timer_delay]] *weechat.look.mouse_timer_delay*
+** опис: pass:none[кашњење (у милисекундама) за хватање догађаја миша: програм WeeChat ће чекати да протекне оволико времена пре нео што обради догађај]
+** тип: целобројна
+** вредности: 1 .. 10000
+** подразумевана вредност: `+100+`
+
+* [[option_weechat.look.nick_color_force]] *weechat.look.nick_color_force*
+** опис: pass:none[за неке надимке се форсира боја: хеш израчунат са надимком у циљу проналажења боје се неће користити за ове надимке (формат је: „надимак1:боја1;надимак2:боја2”); претрага надимака пази на величину слова само када су мала, тако да ова опција може да се користи само за надимке исписане малим словима; боја може да укључи и позадину помоћу формата „текст,позадина”, на пример „yellow,red”]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+""+`
+
+* [[option_weechat.look.nick_color_hash]] *weechat.look.nick_color_hash*
+** опис: pass:none[хеш алгоритам који се користи за проналажење боје неког надимка: djb2 = варијанта djb2 (важна је позиција слова: анаграми надимка имају другачије боје), djb2_32 = варијанта djb2 која уместо 64-битног целог броја користи 32-битни, sum = збир слова, sum_32 = збир слова код којег се уместо 64-битног целог броја користи 32-битни]
+** тип: целобројна
+** вредности: djb2, sum, djb2_32, sum_32
+** подразумевана вредност: `+djb2+`
+
+* [[option_weechat.look.nick_color_hash_salt]] *weechat.look.nick_color_hash_salt*
+** опис: pass:none[со за хеш алгоритам који се користи за проналажење боја надимака (на ову со се додаје надимак, па хеш алгоритам као улаз користи тај стринг); измена ове вредности меша боје надимака]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+""+`
+
+* [[option_weechat.look.nick_color_stop_chars]] *weechat.look.nick_color_stop_chars*
+** опис: pass:none[карактери који се користе за заустављање код израчунавања боје словима надимка (пре заустављања мора да се наиђе на барем један карактер ван ове листе) (пример: надимак „|nick|away” са „|” у карактерима ће вратити боју за надимак „|nick”); ова опција утиче на опцију weechat.look.nick_color_force, тако да надимак за форсирану боју не сме да садржи карактере који се овом опцијом игноришу]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"_|["+`
+
+* [[option_weechat.look.nick_prefix]] *weechat.look.nick_prefix*
+** опис: pass:none[текст који се приказује испред надимка у префиксу поруке, на пример: „<”]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+""+`
+
+* [[option_weechat.look.nick_suffix]] *weechat.look.nick_suffix*
+** опис: pass:none[текст који се приказује иза надимка у префиксу поруке, на пример: „>”]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+""+`
+
+* [[option_weechat.look.paste_auto_add_newline]] *weechat.look.paste_auto_add_newline*
+** опис: pass:none[аутоматско додавање прелома реда на крај налепљеног текста у случају да постоји барем две линије и да ли се тражи потврда]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_weechat.look.paste_bracketed]] *weechat.look.paste_bracketed*
+** опис: pass:none[укључује терминалски „режим ограђеног налепљивања” (не подржавају га сви терминали/мултиплексери): у овом режиму се налепљени текст ограђује контролним низовима тако да програм WeeChat може направити разлику између налепљеног и откуцаног текста („ESC[200~”, након које следи налепљени текст, иза којег следи „ESC[201~”)]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_weechat.look.paste_bracketed_timer_delay]] *weechat.look.paste_bracketed_timer_delay*
+** опис: pass:none[Форсира крај ограђеног налепљивања након протека оволико времена (у секундама) ако се контролни низ та крај ограђеног налепљивања („ESC[201~”) није примио на време]
+** тип: целобројна
+** вредности: 1 .. 60
+** подразумевана вредност: `+10+`
+
+* [[option_weechat.look.paste_max_lines]] *weechat.look.paste_max_lines*
+** опис: pass:none[макс број линија које могу да се налепе без питања корисника (-1 = искључује ову могућност); ова опција се користи само у случају да је у барем једној траци употребљена ставка траке „input_paste” (подразумевано се користи у траци „input”)]
+** тип: целобројна
+** вредности: -1 .. 2147483647
+** подразумевана вредност: `+1+`
+
+* [[option_weechat.look.prefix_action]] *weechat.look.prefix_action*
+** опис: pass:none[префикс за поруке акције (напомена: садржај се израчунава, тако да можете користити боје у формату „${color:xxx}”, погледајте /help eval)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+" *"+`
+
+* [[option_weechat.look.prefix_align]] *weechat.look.prefix_align*
+** опис: pass:none[поравнање префикса alignment (none, left, right (подраз.))]
+** тип: целобројна
+** вредности: none, left, right
+** подразумевана вредност: `+right+`
+
+* [[option_weechat.look.prefix_align_max]] *weechat.look.prefix_align_max*
+** опис: pass:none[макс величина префикса (0 = без ограничења)]
+** тип: целобројна
+** вредности: 0 .. 128
+** подразумевана вредност: `+0+`
+
+* [[option_weechat.look.prefix_align_min]] *weechat.look.prefix_align_min*
+** опис: pass:none[мин величина префикса]
+** тип: целобројна
+** вредности: 0 .. 128
+** подразумевана вредност: `+0+`
+
+* [[option_weechat.look.prefix_align_more]] *weechat.look.prefix_align_more*
+** опис: pass:none[карактер који се приказује ако се префикс скрати (мора бити тачно један карактер на екрану)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"+"+`
+
+* [[option_weechat.look.prefix_align_more_after]] *weechat.look.prefix_align_more_after*
+** опис: pass:none[приказује карактер одсецања (подразумевано „+”) након текста (замењујући размак који би требало да се прикаже на овом месту); ако је искључено, карактер одсецања замењује последњи карактер текста]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_weechat.look.prefix_buffer_align]] *weechat.look.prefix_buffer_align*
+** опис: pass:none[поравнање префикса за име бафера, када је више бафера спојено под истим бројем (none, left, right (подразумевано))]
+** тип: целобројна
+** вредности: none, left, right
+** подразумевана вредност: `+right+`
+
+* [[option_weechat.look.prefix_buffer_align_max]] *weechat.look.prefix_buffer_align_max*
+** опис: pass:none[макс величина за име бафера, када је више бафера спојено под истим бројем (0 = нема максималне величине)]
+** тип: целобројна
+** вредности: 0 .. 128
+** подразумевана вредност: `+0+`
+
+* [[option_weechat.look.prefix_buffer_align_more]] *weechat.look.prefix_buffer_align_more*
+** опис: pass:none[карактер који се приказује ако се име бафера одсеца (када је више бафера спојено под истим бројем) (мора да буде тачно један карактер на екрану)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"+"+`
+
+* [[option_weechat.look.prefix_buffer_align_more_after]] *weechat.look.prefix_buffer_align_more_after*
+** опис: pass:none[приказује карактер одсецања (подразумевано „+”) након текста (замењујући размак који би требало да се прикаже на овом месту); ако је искључено, карактер одсецања замењује последњи карактер текста]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_weechat.look.prefix_error]] *weechat.look.prefix_error*
+** опис: pass:none[префикс за поруке о грешки (напомена: садржај се израчунава, тако да можете користити боје у формату „${color:xxx}”, погледајте /help eval)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"=!="+`
+
+* [[option_weechat.look.prefix_join]] *weechat.look.prefix_join*
+** опис: pass:none[префикс за поруке приступа (напомена: садржај се израчунава, тако да можете користити боје у формату „${color:xxx}”, погледајте /help eval)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"-->"+`
+
+* [[option_weechat.look.prefix_network]] *weechat.look.prefix_network*
+** опис: pass:none[префикс за мрежне поруке (напомена: садржај се израчунава, тако да можете користити боје у формату „${color:xxx}”, погледајте /help eval)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"--"+`
+
+* [[option_weechat.look.prefix_quit]] *weechat.look.prefix_quit*
+** опис: pass:none[префикс за поруке напуштања (напомена: садржај се израчунава, тако да можете користити боје у формату „${color:xxx}”, погледајте /help eval)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"<--"+`
+
+* [[option_weechat.look.prefix_same_nick]] *weechat.look.prefix_same_nick*
+** опис: pass:none[префикс који се приказује за поруку са истим надимком као и претходна, али не и наредна порука: употребите размак „ ” да сакријете префикс, неки други стринг који желите да се прикаже уместо префикса, или празан стринг ако желите да искључите ову могућност (приказиваће се префикс)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+""+`
+
+* [[option_weechat.look.prefix_same_nick_middle]] *weechat.look.prefix_same_nick_middle*
+** опис: pass:none[префикс који се приказује за поруку са истим надимком који имају и претходна и наредна порука: употребите размак „ ” ако желите да сакријете префикс, неки други стринг који желите да се прикаже уместо префикса, или празан стринг ако желите да искључите ову могућност (приказиваће се префикс)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+""+`
+
+* [[option_weechat.look.prefix_suffix]] *weechat.look.prefix_suffix*
+** опис: pass:none[стринг који се приказује након префикса]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"|"+`
+
+* [[option_weechat.look.quote_nick_prefix]] *weechat.look.quote_nick_prefix*
+** опис: pass:none[текст који се приказује испред надимка када се цитира порука (погледајте /help cursor)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"<"+`
+
+* [[option_weechat.look.quote_nick_suffix]] *weechat.look.quote_nick_suffix*
+** опис: pass:none[текст који се приказује након надимка када се цитира порука (погледајте /help cursor)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+">"+`
+
+* [[option_weechat.look.quote_time_format]] *weechat.look.quote_time_format*
+** опис: pass:none[формат времена када се цитира порука (погледајте /help cursor)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"%H:%M:%S"+`
+
+* [[option_weechat.look.read_marker]] *weechat.look.read_marker*
+** опис: pass:none[употреба маркера (линије или карактера) у баферима за означавање прве непрочитане линије]
+** тип: целобројна
+** вредности: none, line, char
+** подразумевана вредност: `+line+`
+
+* [[option_weechat.look.read_marker_always_show]] *weechat.look.read_marker_always_show*
+** опис: pass:none[маркер читања се увек приказује, чак и ако се налази иза последње линије бафера]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+off+`
+
+* [[option_weechat.look.read_marker_string]] *weechat.look.read_marker_string*
+** опис: pass:none[стринг који се користи за исцртавање линије маркера читања (стринг се понавља све до краја линије)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"- "+`
+
+* [[option_weechat.look.read_marker_update_on_buffer_switch]] *weechat.look.read_marker_update_on_buffer_switch*
+** опис: pass:none[ажурирање маркера читања када се прелази на друге бафере]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_weechat.look.save_config_on_exit]] *weechat.look.save_config_on_exit*
+** опис: pass:none[чување конфигурације приликом напуштања програма]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_weechat.look.save_config_with_fsync]] *weechat.look.save_config_with_fsync*
+** опис: pass:none[за синхронизацију конфигурационог фајла са меморијским уређајем се користи fsync (погледајте man fsync); ово је спорије, али би требало да спречи евентуални губитак података у случају губитка напајања током чувања конфигурационог фајла]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+off+`
+
+* [[option_weechat.look.save_layout_on_exit]] *weechat.look.save_layout_on_exit*
+** опис: pass:none[чување распореда приликом напуштања програма (бафери, прозори, или оба)]
+** тип: целобројна
+** вредности: none, buffers, windows, all
+** подразумевана вредност: `+none+`
+
+* [[option_weechat.look.scroll_amount]] *weechat.look.scroll_amount*
+** опис: pass:none[колико линија се скролује помоћу scroll_up и scroll_down]
+** тип: целобројна
+** вредности: 1 .. 2147483647
+** подразумевана вредност: `+3+`
+
+* [[option_weechat.look.scroll_bottom_after_switch]] *weechat.look.scroll_bottom_after_switch*
+** опис: pass:none[скролује се на дно прозора када се пређе на други бафер (у прозорима се не памти скрол позиција); скроловање се ради само у баферима са форматираним садржајем (не ради се за слободни садржај)]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+off+`
+
+* [[option_weechat.look.scroll_page_percent]] *weechat.look.scroll_page_percent*
+** опис: pass:none[проценат екрана који се скролује када се скролује страница навише или наниже (на пример, 100 значи једна страница, 50 пола странице)]
+** тип: целобројна
+** вредности: 1 .. 100
+** подразумевана вредност: `+100+`
+
+* [[option_weechat.look.search_text_not_found_alert]] *weechat.look.search_text_not_found_alert*
+** опис: pass:none[корисник се упозорава када се у баферу не пронађе текст који је тражио]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_weechat.look.separator_horizontal]] *weechat.look.separator_horizontal*
+** опис: pass:none[карактер који се користи за исцртавање хоризонталних сепаратора око трака и прозора (празна вредност ће помоћу ncurses да исцрта праву линију, али на неким терминалима може да изазове багове код избора URL адреса); ширина на екрану мора бити тачно један карактер]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"-"+`
+
+* [[option_weechat.look.separator_vertical]] *weechat.look.separator_vertical*
+** опис: pass:none[карактер који се користи за исцртавање вертикалних сепаратора око трака и прозора (празна вредност ће помоћу ncurses да исцрта праву линију); ширина на екрану мора бити тачно један карактер]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+""+`
+
+* [[option_weechat.look.tab_width]] *weechat.look.tab_width*
+** опис: pass:none[број размака који се користи за приказ табулатора у порукама]
+** тип: целобројна
+** вредности: 1 .. 64
+** подразумевана вредност: `+1+`
+
+* [[option_weechat.look.time_format]] *weechat.look.time_format*
+** опис: pass:none[формат времена за датуме који се конвертују у стрингове и приказују у порукама (погледајте man strftime за спецификаторе датума/времена)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"%a, %d %b %Y %T"+`
+
+* [[option_weechat.look.window_auto_zoom]] *weechat.look.window_auto_zoom*
+** опис: pass:none[аутоматско зумирање на текући прозор ако прозор терминала постане сувише мали да покаже све прозоре (употребите alt-z да вратите зум прозора када терминалски прозор постане довољно велики)]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+off+`
+
+* [[option_weechat.look.window_separator_horizontal]] *weechat.look.window_separator_horizontal*
+** опис: pass:none[приказ хоризонталног сепаратора између прозора]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_weechat.look.window_separator_vertical]] *weechat.look.window_separator_vertical*
+** опис: pass:none[приказ вертикалног сепаратора између прозора]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_weechat.look.window_title]] *weechat.look.window_title*
+** опис: pass:none[наслов прозора (терминала за Curses ГКИ), који се поставља приликом покретања програма; празан стринг ће задржати постојећи наслов (напомена: садржај се израчунава, погледајте /help eval); пример: „WeeChat ${info:version}”]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+""+`
+
+* [[option_weechat.look.word_chars_highlight]] *weechat.look.word_chars_highlight*
+** опис: pass:none[листа карактера раздвојених зарезима (или опсега карактера) који се сматрају за део речи које се истичу; свака ставка може бити један карактер, опсег карактера (формат је: a-z), класа широких карактера (на пример „alnum”, погледајте man wctype); „!” испред ставке је чини негативном (тј. карактер се НЕ сматра као део речи); вредност „*” се подудара са било којим карактером; дозвољени су уникод карактери у формату \u1234, на пример \u00A0 за размак који не сме да се преломи (погледајте /help print за подржане формате)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"!\u00A0,-,_,|,alnum"+`
+
+* [[option_weechat.look.word_chars_input]] *weechat.look.word_chars_input*
+** опис: pass:none[листа карактера раздвојених зарезима (или опсег карактера) који се сматра за део речи у командној линији; свака ставка може бити један карактер, опсег карактера (формат: a-z), класа широких карактера (на пример „alnum”, погледајте man wctype); „!” испред ставке је чини негативном (тј. карактер се НЕ сматра као део речи); вредност „*” се подудара са било којим карактером; дозвољени су уникод карактери у формату \u1234, на пример \u00A0 за размак који не може да се преломи (погледајте /help print за подржане формате)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"!\u00A0,-,_,|,alnum"+`
+
+* [[option_weechat.network.connection_timeout]] *weechat.network.connection_timeout*
+** опис: pass:none[тајмаут (у секундама) који се чека на конекцију са удаљеним хостом (која се креира као процес дете)]
+** тип: целобројна
+** вредности: 1 .. 2147483647
+** подразумевана вредност: `+60+`
+
+* [[option_weechat.network.gnutls_ca_system]] *weechat.network.gnutls_ca_system*
+** опис: pass:none[током покретања учитава подразумеване системске ауторитете сертификата; ово може да се искључи како би се уштедело нешто меморије, али само онда када уопште не користите SSL везе]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_weechat.network.gnutls_ca_user]] *weechat.network.gnutls_ca_user*
+** опис: pass:none[додатни фајл(ови) са ауторитетима сертификата; више фајлова може да се раздвоји тачка зарезима (свака путања се израчунава, погледајте функцију string_eval_path_home у референтном приручнику API додатака)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+""+`
+
+* [[option_weechat.network.gnutls_handshake_timeout]] *weechat.network.gnutls_handshake_timeout*
+** опис: pass:none[тајмаут (у секундама) за gnutls успостављање везе]
+** тип: целобројна
+** вредности: 1 .. 2147483647
+** подразумевана вредност: `+30+`
+
+* [[option_weechat.network.proxy_curl]] *weechat.network.proxy_curl*
+** опис: pass:none[име проксија који се користи за преузимање са URL адреса програмом Curl (користи се за преузимање листе скрипти и за позивање функције hook_process у скриптама); прокси мора бити дефинисан командом /proxy]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+""+`
+
+* [[option_weechat.plugin.autoload]] *weechat.plugin.autoload*
+** опис: pass:none[листа додатака раздвојена зарезима који се приликом покретања аутоматски учитавају, „*” значи сви пронађени додаци, име које почиње са „!” је негативна вредност која спречава да се тај додатак учита, џокер „*” се дозвољава у именима (примери: „*” или „*,!lua,!tcl”)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"*"+`
+
+* [[option_weechat.plugin.debug]] *weechat.plugin.debug*
+** опис: pass:none[дибаг поруке се подразумевано укључују за све додатке (опција је подразумевано искључена, што се снажно препоручује)]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+off+`
+
+* [[option_weechat.plugin.extension]] *weechat.plugin.extension*
+** опис: pass:none[листа екстензија имена фајлова за додатке раздвојених запетама]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+".so,.dll"+`
+
+* [[option_weechat.plugin.path]] *weechat.plugin.path*
+** опис: pass:none[путања за претраживање додатака (путања се израчунава, погледајте функцију string_eval_path_home у референтном приручнику API додатака)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"${weechat_data_dir}/plugins"+`
+
+* [[option_weechat.plugin.save_config_on_unload]] *weechat.plugin.save_config_on_unload*
+** опис: pass:none[чување конфигурације када се додаци уклањају из меморије]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_weechat.signal.sighup]] *weechat.signal.sighup*
+** опис: pass:none[команда која се извршава када се прими сигнал, више команди може да се раздвоји тачка зарезима (напомена: команде се израчунавају, погледајте /help eval)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"${if:${info:weechat_headless}?/reload:/quit -yes}"+`
+
+* [[option_weechat.signal.sigquit]] *weechat.signal.sigquit*
+** опис: pass:none[команда која се извршава када се прими сигнал, више команди може да се раздвоји тачка зарезима (напомена: команде се израчунавају, погледајте /help eval)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"/quit -yes"+`
+
+* [[option_weechat.signal.sigterm]] *weechat.signal.sigterm*
+** опис: pass:none[команда која се извршава када се прими сигнал, више команди може да се раздвоји тачка зарезима (напомена: команде се израчунавају, погледајте /help eval)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"/quit -yes"+`
+
+* [[option_weechat.signal.sigusr1]] *weechat.signal.sigusr1*
+** опис: pass:none[команда која се извршава када се прими сигнал, више команди може да се раздвоји тачка зарезима (напомена: команде се израчунавају, погледајте /help eval)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+""+`
+
+* [[option_weechat.signal.sigusr2]] *weechat.signal.sigusr2*
+** опис: pass:none[команда која се извршава када се прими сигнал, више команди може да се раздвоји тачка зарезима (напомена: команде се израчунавају, погледајте /help eval)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+""+`
+
+* [[option_weechat.startup.command_after_plugins]] *weechat.startup.command_after_plugins*
+** опис: pass:none[команда која се извршава када се покрене програм WeeChat, након учитавања додатака; више команди може да се раздвоји тачка зарезима (напомена: команде се израчунавају, погледајте /help eval)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+""+`
+
+* [[option_weechat.startup.command_before_plugins]] *weechat.startup.command_before_plugins*
+** опис: pass:none[команда која се извршава када се покрене програм WeeChat, пре учитавања додатака; више команди може да се раздвоји тачка зарезима (напомена: команде се израчунавају, погледајте /help eval)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+""+`
+
+* [[option_weechat.startup.display_logo]] *weechat.startup.display_logo*
+** опис: pass:none[приказивање WeeChat логоа приликом покретања]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_weechat.startup.display_version]] *weechat.startup.display_version*
+** опис: pass:none[приказивање WeeChat верзије приликом покретања]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_weechat.startup.sys_rlimit]] *weechat.startup.sys_rlimit*
+** опис: pass:none[поставља границе ресурса за WeeChat процес, формат је: „рес1:лимит1,рес2:лимит2”; име ресурса је крај константе (RLIMIT_XXX) исписано малим словима (за вредности погледајте man setrlimit); лимит -1 значи „неограничено”; пример: постављање неограничене величине за фајл језгра и максимално 1ГБ виртуелне меморије: „core:-1,as:1000000000”]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+""+`
+// end::weechat_options[]
+
+// tag::charset_options[]
+* [[option_charset.default.decode]] *charset.default.decode*
+** опис: pass:none[глобални скуп карактера у који се декодира: скуп карактера који се који се користи за декодирање долазних порука онда када нису у исправном UTF-8]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"iso-8859-1"+`
+
+* [[option_charset.default.encode]] *charset.default.encode*
+** опис: pass:none[глобални скуп карактера у који се кодира: скуп карактера у који се кодирају одлазеће поруке (ако је празно, подразумевана вредност је UTF-8 јер је то интерни WeeChat скуп карактера)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+""+`
+// end::charset_options[]
+
+// tag::logger_options[]
+* [[option_logger.color.backlog_end]] *logger.color.backlog_end*
+** опис: pass:none[боја за линију којом се завршавају старије линије]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+default+`
+
+* [[option_logger.color.backlog_line]] *logger.color.backlog_line*
+** опис: pass:none[боја за старије, користи се само ако је опција logger.file.color_lines искључена]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+default+`
+
+* [[option_logger.file.auto_log]] *logger.file.auto_log*
+** опис: pass:none[аутоматско чување садржаја бафера у фајлове (осим у случају да бафер искључује логовање)]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_logger.file.color_lines]] *logger.file.color_lines*
+** опис: pass:none[употреба ANSI кодова боја у линијама које се уписују у лог фајлове и приказ старијих линија уз употребу ових боја]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+off+`
+
+* [[option_logger.file.flush_delay]] *logger.file.flush_delay*
+** опис: pass:none[број секунди између спирања лог фајлова (0 = лог фајлови се уписују тренутно чим се свака линија испише)]
+** тип: целобројна
+** вредности: 0 .. 3600
+** подразумевана вредност: `+120+`
+
+* [[option_logger.file.fsync]] *logger.file.fsync*
+** опис: pass:none[употреба fsync за синхронизацију лог фајла на меморијски уређај након спирања (погледајте man fsync); ово је спорије али би требало да спречи евентуални губитак података у случају нестанка напајања за време чувања лог фајла]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+off+`
+
+* [[option_logger.file.info_lines]] *logger.file.info_lines*
+** опис: pass:none[упис линије са информацијама у лог фајл када се започне или заустави логовање за бафер]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+off+`
+
+* [[option_logger.file.mask]] *logger.file.mask*
+** опис: pass:none[подразумевана маска имена фајла за лог фајлове (формат је „директоријум/до/фајла” или „фајл”, без почетног „/” јер се опција „path” употребљава за изградњу комплетне путање до фајла); дозвољене су локалне бафер променљиве (требало би да користите само променљиве које су дефинисане у свим баферима, на пример, НЕ би требало да користите ни $server ни $channel); дозвољени су спецификатори датума (погледајте man strftime)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"$plugin.$name.weechatlog"+`
+
+* [[option_logger.file.name_lower_case]] *logger.file.name_lower_case*
+** опис: pass:none[за имена лог фајлова се користе само мала слова]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_logger.file.nick_prefix]] *logger.file.nick_prefix*
+** опис: pass:none[текст који се исписује испред надимка у префиксу поруке, пример: „<”]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+""+`
+
+* [[option_logger.file.nick_suffix]] *logger.file.nick_suffix*
+** опис: pass:none[текст који се исписује иза надимка у префиксу поруке, пример: „>”]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+""+`
+
+* [[option_logger.file.path]] *logger.file.path*
+** опис: pass:none[путања за WeeChat лог фајлове; дозвољавају се спецификатори датума (погледајте man strftime) (путања се израчунава, погледајте функцију string_eval_path_home у референтном приручнику API додатака)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"${weechat_data_dir}/logs"+`
+
+* [[option_logger.file.replacement_char]] *logger.file.replacement_char*
+** опис: pass:none[карактер који замењује специјалне карактере у именима фајлова која се изграђују помоћу маске (као што је граничник за директоријуме)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"_"+`
+
+* [[option_logger.file.time_format]] *logger.file.time_format*
+** опис: pass:none[временска ознака која се користи у лог фајловима (погледајте man strftime за спецификаторе датума/времена)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"%Y-%m-%d %H:%M:%S"+`
+
+* [[option_logger.look.backlog]] *logger.look.backlog*
+** опис: pass:none[максимални број линија које се приказују из лог фајла када се креира нови бафер (0 = нема приказа старијих линија)]
+** тип: целобројна
+** вредности: 0 .. 2147483647
+** подразумевана вредност: `+20+`
+
+* [[option_logger.look.backlog_conditions]] *logger.look.backlog_conditions*
+** опис: pass:none[услови под којима се приказују старије линије (напомена: садржај се израчунава, погледајте /help eval); празна вредност приказује старије линије на свим баферима; на пример, ако желите да се старије линије приказују само за приватне бафере: „${type} == private”]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+""+`
+// end::logger_options[]
+
+// tag::exec_options[]
+* [[option_exec.color.flag_finished]] *exec.color.flag_finished*
+** опис: pass:none[боја текста за заставицу команде у листи команди која је завршила извршавање]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+lightred+`
+
+* [[option_exec.color.flag_running]] *exec.color.flag_running*
+** опис: pass:none[боја текста за заставицу команде у листи команди која се тренутно извршава]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+lightgreen+`
+
+* [[option_exec.command.default_options]] *exec.command.default_options*
+** опис: pass:none[подразумеване опције за команду /exec (погледајте /help exec); пример: „-nosh -bg” ако желите да се све команде извршавају у позадини (без излаза), у без употребе командног окружења]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+""+`
+
+* [[option_exec.command.purge_delay]] *exec.command.purge_delay*
+** опис: pass:none[време пре чишћења завршених команди (у секундама, 0 = команде се чисте тренутно, -1 = чишћење се уопште не ради)]
+** тип: целобројна
+** вредности: -1 .. 25920000
+** подразумевана вредност: `+0+`
+
+* [[option_exec.command.shell]] *exec.command.shell*
+** опис: pass:none[командно окружење које се користи из команду „/exec -sh”; може да буде само име окружења ако се налазу у PATH (на пример „bash”) или апсолутна путања до окружења (на пример „/bin/bash”); ако је вредност празна, користиће се „sh” (напомена: садржај се израчунава, погледајте /help eval)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"${env:SHELL}"+`
+// end::exec_options[]
+
+// tag::trigger_options[]
+* [[option_trigger.color.flag_command]] *trigger.color.flag_command*
+** опис: pass:none[боја текста за заставицу команде (у /trigger list)]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+lightgreen+`
+
+* [[option_trigger.color.flag_conditions]] *trigger.color.flag_conditions*
+** опис: pass:none[боја текста за заставицу услова (у /trigger list)]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+yellow+`
+
+* [[option_trigger.color.flag_post_action]] *trigger.color.flag_post_action*
+** опис: pass:none[боја текста за заставицу пост акције (у /trigger list)]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+lightblue+`
+
+* [[option_trigger.color.flag_regex]] *trigger.color.flag_regex*
+** опис: pass:none[боја текста за заставицу регуларног израза (у /trigger list)]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+lightcyan+`
+
+* [[option_trigger.color.flag_return_code]] *trigger.color.flag_return_code*
+** опис: pass:none[боја текста за заставицу повратног кода (у /trigger list)]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+lightmagenta+`
+
+* [[option_trigger.color.regex]] *trigger.color.regex*
+** опис: pass:none[боја текста за регуларне изразе]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+white+`
+
+* [[option_trigger.color.replace]] *trigger.color.replace*
+** опис: pass:none[боја текста за текст замене (у регуларним изразима)]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+cyan+`
+
+* [[option_trigger.color.trigger]] *trigger.color.trigger*
+** опис: pass:none[боја текста за име окидача]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+green+`
+
+* [[option_trigger.color.trigger_disabled]] *trigger.color.trigger_disabled*
+** опис: pass:none[боја текста за име искљученог окидача]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+red+`
+
+* [[option_trigger.look.enabled]] *trigger.look.enabled*
+** опис: pass:none[укључивање подршке за окидаче]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_trigger.look.monitor_strip_colors]] *trigger.look.monitor_strip_colors*
+** опис: pass:none[из вредности хеш табеле приказаних у монитор баферу ће се уклонити боје]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+off+`
+// end::trigger_options[]
+
+// tag::spell_options[]
+* [[option_spell.check.commands]] *spell.check.commands*
+** опис: pass:none[листа команди раздвојених запетама за које се укључује провера правописа (провера правописа се искључује за све остале команде)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"away,command,cycle,kick,kickban,me,msg,notice,part,query,quit,topic"+`
+
+* [[option_spell.check.default_dict]] *spell.check.default_dict*
+** опис: pass:none[подразумевани речник (или листа речника раздвојених запетама) који треба да се користе када бафер нема дефинисан ниједан речник (оставите празно ако желите да се искључи провера правописа у баферима у којима је нисте експлицитно укључили)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+""+`
+
+* [[option_spell.check.during_search]] *spell.check.during_search*
+** опис: pass:none[провера речи за време претраге текста у баферу]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+off+`
+
+* [[option_spell.check.enabled]] *spell.check.enabled*
+** опис: pass:none[укључивање провере правописа у командној линији]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+off+`
+
+* [[option_spell.check.real_time]] *spell.check.real_time*
+** опис: pass:none[провера правописа речи у реалном времену (спорије, подразумевано је искључено: речи се проверавају само ако иза њих дође граничник)]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+off+`
+
+* [[option_spell.check.suggestions]] *spell.check.suggestions*
+** опис: pass:none[проја предлога који се приказује у ставки траке „spell_suggest” за сваки речник постављен у баферу (-1 = искључује предлоге, 0 = приказује све могуће предлоге у свим језицима)]
+** тип: целобројна
+** вредности: -1 .. 2147483647
+** подразумевана вредност: `+-1+`
+
+* [[option_spell.check.word_min_length]] *spell.check.word_min_length*
+** опис: pass:none[минимална дужина речи да би се проверио правопис (употребите 0 ако желите да се проверавају све речи)]
+** тип: целобројна
+** вредности: 0 .. 2147483647
+** подразумевана вредност: `+2+`
+
+* [[option_spell.color.misspelled]] *spell.color.misspelled*
+** опис: pass:none[боја текста за погрешно написане речи (трака уноса)]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+lightred+`
+
+* [[option_spell.color.suggestion]] *spell.color.suggestion*
+** опис: pass:none[боја текста за предлог исправке погрешно исписане рели у ставки траке „spell_suggest”]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+default+`
+
+* [[option_spell.color.suggestion_delimiter_dict]] *spell.color.suggestion_delimiter_dict*
+** опис: pass:none[боја текста за граничнике који се исписују између два речника у ставки траке „spell_suggest”]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+cyan+`
+
+* [[option_spell.color.suggestion_delimiter_word]] *spell.color.suggestion_delimiter_word*
+** опис: pass:none[боја текста за граничнике који се исписују између две речи у ставки траке „spell_suggest”]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+cyan+`
+
+* [[option_spell.look.suggestion_delimiter_dict]] *spell.look.suggestion_delimiter_dict*
+** опис: pass:none[граничник који се приказује између два речника у ставки траке „spell_suggest”]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+" / "+`
+
+* [[option_spell.look.suggestion_delimiter_word]] *spell.look.suggestion_delimiter_word*
+** опис: pass:none[граничник који се приказује између две речи у ставки траке „spell_suggest”]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+","+`
+// end::spell_options[]
+
+// tag::buflist_options[]
+* [[option_buflist.format.buffer]] *buflist.format.buffer*
+** опис: pass:none[формат сваке линије са бафером (напомена: садржај се израчунава, погледајте /help buflist); пример: стандардни формат за ставку траке „buflist” и само број бафера за број између великих заграда или за остале ставке траке („buflist2” и „buflist3”): „${if:${bar_item.name}==buflist?${format_number}${indent}${format_nick_prefix}${color_hotlist}${format_name}:[${number}\]}”]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"${format_number}${indent}${format_nick_prefix}${color_hotlist}${format_name}"+`
+
+* [[option_buflist.format.buffer_current]] *buflist.format.buffer_current*
+** опис: pass:none[формат линије са текућим бафером (напомена: садржај се израчунава, погледајте /help buflist)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"${color:,blue}${format_buffer}"+`
+
+* [[option_buflist.format.hotlist]] *buflist.format.hotlist*
+** опис: pass:none[формат вруће листе (напомена: садржај се израчунава, погледајте /help buflist)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+" ${color:green}(${hotlist}${color:green})"+`
+
+* [[option_buflist.format.hotlist_highlight]] *buflist.format.hotlist_highlight*
+** опис: pass:none[формат за бафер са „highlight” нивоом вруће листе (напомена: садржај се израчунава, погледајте /help buflist)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"${color:magenta}"+`
+
+* [[option_buflist.format.hotlist_low]] *buflist.format.hotlist_low*
+** опис: pass:none[формат за бафер са „low” нивоом врућ листе (напомена: садржај се израчунава, погледајте /help buflist)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"${color:white}"+`
+
+* [[option_buflist.format.hotlist_message]] *buflist.format.hotlist_message*
+** опис: pass:none[формат за бафер са „message” нивоом вруће листе (напомена: садржај се израчунава, погледајте /help buflist)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"${color:brown}"+`
+
+* [[option_buflist.format.hotlist_none]] *buflist.format.hotlist_none*
+** опис: pass:none[формат за бафер који се не налази у врућој листи (напомена: садржај се израчунава, погледајте /help buflist)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"${color:default}"+`
+
+* [[option_buflist.format.hotlist_private]] *buflist.format.hotlist_private*
+** опис: pass:none[формат за бафер са „private” нивоом вруће листе (напомена: садржај се израчунава, погледајте /help buflist)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"${color:green}"+`
+
+* [[option_buflist.format.hotlist_separator]] *buflist.format.hotlist_separator*
+** опис: pass:none[граничник за бројеве у врућој листи (напомена: садржај се израчунава, погледајте /help buflist)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"${color:default},"+`
+
+* [[option_buflist.format.indent]] *buflist.format.indent*
+** опис: pass:none[стринг који се приказује за увлачење канала и приватних бафера (напомена: садржај се израчунава /help buflist)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+" "+`
+
+* [[option_buflist.format.lag]] *buflist.format.lag*
+** опис: pass:none[формат за кашњење у баферу IRC сервера (напомена: садржај се израчунава, погледајте /help buflist)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+" ${color:green}[${color:brown}${lag}${color:green}]"+`
+
+* [[option_buflist.format.name]] *buflist.format.name*
+** опис: pass:none[формат за име бафера (напомена: садржај се израчунава, погледајте /help buflist)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"${name}"+`
+
+* [[option_buflist.format.nick_prefix]] *buflist.format.nick_prefix*
+** опис: pass:none[формат за префикс надимка на каналу (напомена: садржај се израчунава, погледајте /help buflist)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"${color_nick_prefix}${nick_prefix}"+`
+
+* [[option_buflist.format.number]] *buflist.format.number*
+** опис: pass:none[формат за број бафера, ${number} је увучено број (напомена: садржај се извршава, погледајте /help buflist)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"${color:green}${number}${if:${number_displayed}?.: }"+`
+
+* [[option_buflist.format.tls_version]] *buflist.format.tls_version*
+** опис: pass:none[формат за TLS верзију у баферу IRC сервера (напомена: садржај се израчунава, погледајте /help buflist)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+" ${color:default}(${if:${tls_version}==TLS1.3?${color:green}:${if:${tls_version}==TLS1.2?${color:yellow}:${color:red}}}${translate:${tls_version}}${color:default})"+`
+
+* [[option_buflist.look.add_newline]] *buflist.look.add_newline*
+** опис: pass:none[додаје прелом линије између приказаних бафера, тако да се сваки бафер приказује на одвојеној линији (препоручено); ако је искључено, преломи редова морају ручно да се додају у формате са „${\n}”, и више нису могуће акције мишем]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_buflist.look.auto_scroll]] *buflist.look.auto_scroll*
+** опис: pass:none[аутоматски скролује листу бафера тако да се текући бафер увек приказује (ово функционише само са траком на левој/десној позицији са „vertical” испуном); ова вредност је проценат линија које се приказује испред текућег бафера када се скролује (-1 = искључује скроловање); на пример, 50 значи да је текући бафер након скроловања у средини траке, 0 значи на врху траке, а 100 на дну]
+** тип: целобројна
+** вредности: -1 .. 100
+** подразумевана вредност: `+50+`
+
+* [[option_buflist.look.display_conditions]] *buflist.look.display_conditions*
+** опис: pass:none[услови под којима се бафер приказује (напомена: садржај се израчунава, погледајте /help buflist); на пример, ако желите да сакријете серверске бафере онда када су спојени са основним бафером: „${buffer.hidden}==0 && ((${type}!=server && ${buffer.full_name}!=core.weechat) || ${buffer.active}==1)”]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"${buffer.hidden}==0"+`
+
+* [[option_buflist.look.enabled]] *buflist.look.enabled*
+** опис: pass:none[укључује buflist]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_buflist.look.mouse_jump_visited_buffer]] *buflist.look.mouse_jump_visited_buffer*
+** опис: pass:none[ако је укључена, кликови левим/десним тастером миша на линију са текућим бафером врши скок на претходни/наредни посећени бафер]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+off+`
+
+* [[option_buflist.look.mouse_move_buffer]] *buflist.look.mouse_move_buffer*
+** опис: pass:none[ако је укључено, гестикулација мишем (превлачење и испуштање) померају бафере у листи]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_buflist.look.mouse_wheel]] *buflist.look.mouse_wheel*
+** опис: pass:none[ако је укључено, померање точкића миша горе/доле врши скок на претходни/наредни бафер у листи]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_buflist.look.nick_prefix]] *buflist.look.nick_prefix*
+** опис: pass:none[враћа префикс надимка и његову боју из листе надимака тако да у формату може да се користи ${nick_prefix}; ово може да буде споро у баферима са доста надимака у листи надимака, тако да је ова опција подразумевано искључена]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+off+`
+
+* [[option_buflist.look.nick_prefix_empty]] *buflist.look.nick_prefix_empty*
+** опис: pass:none[када је укључен префикс надимка, у случају да за бафер није дефинисан префикс надимка, приказује се размак]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_buflist.look.signals_refresh]] *buflist.look.signals_refresh*
+** опис: pass:none[листа додатних сигнала који се каче раздвојених запетама и окида освежавање листе бафера; ово може да буде корисно ако се у форматима употребљавају неке кориснички дефинисане променљиве којима је неоходно специфично освежавање]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+""+`
+
+* [[option_buflist.look.sort]] *buflist.look.sort*
+** опис: pass:none[листа поља по којима се сортирају бафери, раздвојена запетама; свако поље је hdata променљива бафера („var”), hdata променљива IRC сервера („irc_server.var”) или hdata променљива IRC канала („irc_channel.var”); испред поља може да се користи карактер „-” чиме се обрће редослед, а за поређење које не прави разлику у величини слова, може да се користи карактер „~”; пример: „-~short_name” за поређење које не води рачуна о величини слова и обрнуто сортирање по кратком имену бафера (напомена: садржај се израчунава, пре него што се издели у поља, али у то време је „bar_item” једина променљива која може да се користи, како би се направила разлика између различитих ставки листе бафера, на пример „${bar_item.name}”)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"number,-active"+`
+
+* [[option_buflist.look.use_items]] *buflist.look.use_items*
+** опис: pass:none[број buflist ставки траке које могу да се користе; имена ставки су: „buflist”, „buflist2”, „buflist3”; будите пажљиви, употреба више од једне ставке траке успорава приказ листе бафера]
+** тип: целобројна
+** вредности: 1 .. 3
+** подразумевана вредност: `+1+`
+// end::buflist_options[]
+
+// tag::fifo_options[]
+* [[option_fifo.file.enabled]] *fifo.file.enabled*
+** опис: pass:none[укључивање FIFO пајпа]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_fifo.file.path]] *fifo.file.path*
+** опис: pass:none[путања за FIFO фајл; у путањи може да се користи PID програма WeeChat са ${info:pid} (путања се израчунава, погледајте функцију string_eval_path_home у референтном приручнику API додатака)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"${weechat_runtime_dir}/weechat_fifo_${info:pid}"+`
+// end::fifo_options[]
+
+// tag::xfer_options[]
+* [[option_xfer.color.status_aborted]] *xfer.color.status_aborted*
+** опис: pass:none[боја текста за „прекинут” статус]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+lightred+`
+
+* [[option_xfer.color.status_active]] *xfer.color.status_active*
+** опис: pass:none[боја текста за „активан” статус]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+lightblue+`
+
+* [[option_xfer.color.status_connecting]] *xfer.color.status_connecting*
+** опис: pass:none[боја текста за статус „connecting”]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+yellow+`
+
+* [[option_xfer.color.status_done]] *xfer.color.status_done*
+** опис: pass:none[боја текста за „завршен” статус]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+lightgreen+`
+
+* [[option_xfer.color.status_failed]] *xfer.color.status_failed*
+** опис: pass:none[боја текста за „није успео” статус]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+lightred+`
+
+* [[option_xfer.color.status_waiting]] *xfer.color.status_waiting*
+** опис: pass:none[боја текста за „чекање” статус]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+lightcyan+`
+
+* [[option_xfer.color.text]] *xfer.color.text*
+** опис: pass:none[боја текста у xfer баферу]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+default+`
+
+* [[option_xfer.color.text_bg]] *xfer.color.text_bg*
+** опис: pass:none[боја позадине у xfer баферу]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+default+`
+
+* [[option_xfer.color.text_selected]] *xfer.color.text_selected*
+** опис: pass:none[боја текста у изабраној линији xfer бафера]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+white+`
+
+* [[option_xfer.file.auto_accept_chats]] *xfer.file.auto_accept_chats*
+** опис: pass:none[аутоматско прихватање захтева за разговор (употребљавајте опрезно!)]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+off+`
+
+* [[option_xfer.file.auto_accept_files]] *xfer.file.auto_accept_files*
+** опис: pass:none[аутоматско прихватање долазних фајлова (употребљавајте опрезно!)]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+off+`
+
+* [[option_xfer.file.auto_accept_nicks]] *xfer.file.auto_accept_nicks*
+** опис: pass:none[листа надимака раздвојених запетама за које се долазни фајлови и разговори аутоматски прихватају; формат је „сервер.надимак” (за одређени сервер) или „надимак” (за све сервере); пример: „libera.FlashCode,andrew”]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+""+`
+
+* [[option_xfer.file.auto_check_crc32]] *xfer.file.auto_check_crc32*
+** опис: pass:none[аутоматска провера CRC32 контролне суме фајла ако се пронађе у имену фајла (8 хексадецималних карактера)]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+off+`
+
+* [[option_xfer.file.auto_rename]] *xfer.file.auto_rename*
+** опис: pass:none[измена имена долазном фајлу ако већ постоји (додаје се „.1”, „.2”, ...)]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_xfer.file.auto_resume]] *xfer.file.auto_resume*
+** опис: pass:none[аутоматски наставак трансфера фајла ако се веза са удаљеним хостом прекине]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_xfer.file.convert_spaces]] *xfer.file.convert_spaces*
+** опис: pass:none[конвертовање размака у доње црте када се шаљу и примају фајлови]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_xfer.file.download_path]] *xfer.file.download_path*
+** опис: pass:none[путања за писање долазних фајлова (путања се израчунава, погледајте функцију string_eval_path_home у референтном приручнику API додатака)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"${weechat_data_dir}/xfer"+`
+
+* [[option_xfer.file.download_temporary_suffix]] *xfer.file.download_temporary_suffix*
+** опис: pass:none[суфикс привременог фајла који се користи током трансфера долазног фајла, он се уклања након успешног завршетка трансфера; ако је празан стринг, не користи се никакав суфикс имена фајла током трансфера]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+".part"+`
+
+* [[option_xfer.file.upload_path]] *xfer.file.upload_path*
+** опис: pass:none[путања за читање фајлова за слање (путања се израчунава, погледајте функцију string_eval_path_home у референтном приручнику API додатака)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"~"+`
+
+* [[option_xfer.file.use_nick_in_filename]] *xfer.file.use_nick_in_filename*
+** опис: pass:none[употреба удаљеног надимка као префикс у имену локалног фајла када се прима фајл]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_xfer.look.auto_open_buffer]] *xfer.look.auto_open_buffer*
+** опис: pass:none[ауто отварање xfer бафера када се на листу дода нови xfer]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_xfer.look.progress_bar_size]] *xfer.look.progress_bar_size*
+** опис: pass:none[величина траке напретка, у карактерима (ако је 0, трака напретка је искључена)]
+** тип: целобројна
+** вредности: 0 .. 256
+** подразумевана вредност: `+20+`
+
+* [[option_xfer.look.pv_tags]] *xfer.look.pv_tags*
+** опис: pass:none[листа ознака раздвојених запетама које се користе у приватним порукама, на пример: „notify_message”, „notify_private” или „notify_highlight”]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"notify_private"+`
+
+* [[option_xfer.network.blocksize]] *xfer.network.blocksize*
+** опис: pass:none[величина блока за слање пакета, у бајтовима]
+** тип: целобројна
+** вредности: 1024 .. 102400
+** подразумевана вредност: `+65536+`
+
+* [[option_xfer.network.fast_send]] *xfer.network.fast_send*
+** опис: pass:none[не чека се на ACK када се шаље фајл]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_xfer.network.own_ip]] *xfer.network.own_ip*
+** опис: pass:none[IP или DNS адреса која се користи за слање фајлова/разговора (ако је празно, користи се IP локалног интерфејса)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+""+`
+
+* [[option_xfer.network.port_range]] *xfer.network.port_range*
+** опис: pass:none[ограничава одлазне фајлове/разговоре тако да користе само портове у наведеном опсегу (корисно за NAT) (синтакса: један порт, тј. 5000 или опсег портова, тј. 5000-5015, празна вредност значи било који порт, препоручује се употреба портова већих од 1024, јер само root може да користи портове испод 1024)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+""+`
+
+* [[option_xfer.network.send_ack]] *xfer.network.send_ack*
+** опис: pass:none[слање acks када се примају фајлови; ако је искључено, трансфер може да се закочи у случају да пошиљалац чека на acks (на пример програм WeeChat који шаље фајл са опцијом xfer.network.fast_send постављеном на off); с друге стране, искључивање слања acks може спречити замрзавање у случају да се acks одмах не шаљу пошиљаоцу]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_xfer.network.speed_limit_recv]] *xfer.network.speed_limit_recv*
+** опис: pass:none[ограничење брзине за пријем фајлова, у килобајтима по секунди (0 значи без ограничења)]
+** тип: целобројна
+** вредности: 0 .. 2147483647
+** подразумевана вредност: `+0+`
+
+* [[option_xfer.network.speed_limit_send]] *xfer.network.speed_limit_send*
+** опис: pass:none[ограничење брзине за слање фајлова, у килобајтима по секунди (0 значи без ограничења)]
+** тип: целобројна
+** вредности: 0 .. 2147483647
+** подразумевана вредност: `+0+`
+
+* [[option_xfer.network.timeout]] *xfer.network.timeout*
+** опис: pass:none[тајмаут за xfer захтев (у секундама)]
+** тип: целобројна
+** вредности: 5 .. 2147483647
+** подразумевана вредност: `+300+`
+// end::xfer_options[]
+
+// tag::irc_options[]
+* [[option_irc.color.input_nick]] *irc.color.input_nick*
+** опис: pass:none[боја за надимак у траци уноса]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+lightcyan+`
+
+* [[option_irc.color.item_channel_modes]] *irc.color.item_channel_modes*
+** опис: pass:none[боја за режиме канала, у близини имена канала]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+default+`
+
+* [[option_irc.color.item_lag_counting]] *irc.color.item_lag_counting*
+** опис: pass:none[боја за индикатор кашњења, када се броји (понг се не прима од сервера, кашњење се увећава)]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+default+`
+
+* [[option_irc.color.item_lag_finished]] *irc.color.item_lag_finished*
+** опис: pass:none[боја за индикатор кашњења, када се од сервера прима понг]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+yellow+`
+
+* [[option_irc.color.item_nick_modes]] *irc.color.item_nick_modes*
+** опис: pass:none[боја за режиме надимка у ставки траке „input_prompt”]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+default+`
+
+* [[option_irc.color.item_tls_version_deprecated]] *irc.color.item_tls_version_deprecated*
+** опис: pass:none[боја за застареле TLS верзије у ставки траке „tls_version”]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+yellow+`
+
+* [[option_irc.color.item_tls_version_insecure]] *irc.color.item_tls_version_insecure*
+** опис: pass:none[боја за небезбедне TLS верзије у ставки траке „tls_version”]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+red+`
+
+* [[option_irc.color.item_tls_version_ok]] *irc.color.item_tls_version_ok*
+** опис: pass:none[боја за више подржане TLS верзије у ставки траке „tls_version”]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+green+`
+
+* [[option_irc.color.message_account]] *irc.color.message_account*
+** опис: pass:none[боја за текст у account порукама]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+cyan+`
+
+* [[option_irc.color.message_chghost]] *irc.color.message_chghost*
+** опис: pass:none[боја за текст у chghost порукама]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+brown+`
+
+* [[option_irc.color.message_join]] *irc.color.message_join*
+** опис: pass:none[боја за текст у join порукама]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+green+`
+
+* [[option_irc.color.message_kick]] *irc.color.message_kick*
+** опис: pass:none[боја за текст у kick/kill порукама]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+red+`
+
+* [[option_irc.color.message_quit]] *irc.color.message_quit*
+** опис: pass:none[боја за текст у part/quit порукама]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+red+`
+
+* [[option_irc.color.mirc_remap]] *irc.color.mirc_remap*
+** опис: pass:none[ремапирање mirc боја у порукама користећи хеш табелу: кључеви су „fg,bg” као цели бројеви између -1 (није наведена) и 15, вредности су WeeChat имена или бројеви боја (формат је: „1,-1:боја1;2,7:боја2”), пример: „1,-1:darkgray;1,2:white,blue” да се црна ремапира на „darkgray” и црна на плавој позадини у „white,blue”; подразумеване WeeChat боје за IRC кодове: 0=white, 1=black, 2=blue, 3=green, 4=lightred, 5=red, 6=magenta, 7=brown, 8=yellow, 9=lightgreen, 10=cyan, 11=lightcyan, 12=lightblue, 13=lightmagenta, 14=darkgray, 15=gray]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"1,-1:darkgray"+`
+
+* [[option_irc.color.nick_prefixes]] *irc.color.nick_prefixes*
+** опис: pass:none[боја за префиксе надимака употребом карактера режима (o=оп, h=полуоп, v=глас, ...), формат је: „o:боја1;h:боја2;v:боја3” (ако се режим не пронађе, програм WeeChat ће покушати са наредним режимима који су примењени са сервера („PREFIX”); за дефинисање подразумеване боје која се користи у случају да се у листи не пронађе ниједан режим може да се употреби специјални режим „*”)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"y:lightred;q:lightred;a:lightcyan;o:lightgreen;h:lightmagenta;v:yellow;*:lightblue"+`
+
+* [[option_irc.color.notice]] *irc.color.notice*
+** опис: pass:none[боја за текст „Обавештење” у обавештењима]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+green+`
+
+* [[option_irc.color.reason_kick]] *irc.color.reason_kick*
+** опис: pass:none[боја за разлог у kick/kill порукама]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+default+`
+
+* [[option_irc.color.reason_quit]] *irc.color.reason_quit*
+** опис: pass:none[боја за разлог у part/quit порукама]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+default+`
+
+* [[option_irc.color.topic_current]] *irc.color.topic_current*
+** опис: pass:none[боја за тему текућег канала (када се приступа каналу или користи /topic)]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+default+`
+
+* [[option_irc.color.topic_new]] *irc.color.topic_new*
+** опис: pass:none[боја за тему новог канала (када се измени тема)]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+white+`
+
+* [[option_irc.color.topic_old]] *irc.color.topic_old*
+** опис: pass:none[боја за стару тему канала (када се тема измени)]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+default+`
+
+* [[option_irc.look.buffer_open_before_autojoin]] *irc.look.buffer_open_before_autojoin*
+** опис: pass:none[бафер канала се отвара пре него што се од сервера прими JOIN онда када је за сервер постављено аутоматско приступање каналима (опцијом сервера „autojoin”); ово је корисно да се приликом покретања увек отворе канали са истим бројем бафера]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_irc.look.buffer_open_before_join]] *irc.look.buffer_open_before_join*
+** опис: pass:none[бафер канала се отвара пре него што се од сервера прими JOIN онда када се ручно приступа каналима на серверу (командом /join)]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+off+`
+
+* [[option_irc.look.buffer_switch_autojoin]] *irc.look.buffer_switch_autojoin*
+** опис: pass:none[аутоматски прелазак на бафер канала када му се аутоматски приступи (опцијом сервера „autojoin”)]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_irc.look.buffer_switch_join]] *irc.look.buffer_switch_join*
+** опис: pass:none[аутоматски прелазак на бафер канала онда када му се ручно приступа (командом /join)]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_irc.look.color_nicks_in_names]] *irc.look.color_nicks_in_names*
+** опис: pass:none[у излазу команде /names се користе обојени надимци (или листа надимака која се приказује приликом приступања каналу)]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+off+`
+
+* [[option_irc.look.color_nicks_in_nicklist]] *irc.look.color_nicks_in_nicklist*
+** опис: pass:none[у листи надимака се користе обојени надимци]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+off+`
+
+* [[option_irc.look.color_nicks_in_server_messages]] *irc.look.color_nicks_in_server_messages*
+** опис: pass:none[у порукама са сервера се користе обојени надимци]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_irc.look.color_pv_nick_like_channel]] *irc.look.color_pv_nick_like_channel*
+** опис: pass:none[иста боја надимка се користи и за канал и за приватни разговор]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_irc.look.ctcp_time_format]] *irc.look.ctcp_time_format*
+** опис: pass:none[формат времена који се користи у одговору на CTCP поруку TIME (погледајте man strftime за спецификаторе датума/времена)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"%a, %d %b %Y %T %z"+`
+
+* [[option_irc.look.display_away]] *irc.look.display_away*
+** опис: pass:none[приказ поруке када се (де)маркира као одсутан (off: не приказује/шаље се ништа, local: приказује се локално, channel: слање акције каналу)]
+** тип: целобројна
+** вредности: off, local, channel
+** подразумевана вредност: `+local+`
+
+* [[option_irc.look.display_ctcp_blocked]] *irc.look.display_ctcp_blocked*
+** опис: pass:none[приказ CTCP поруке чак и ако је блокирана]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_irc.look.display_ctcp_reply]] *irc.look.display_ctcp_reply*
+** опис: pass:none[приказ CTCP одговора који шаље програм WeeChat]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_irc.look.display_ctcp_unknown]] *irc.look.display_ctcp_unknown*
+** опис: pass:none[приказ CTCP поруке чак и ако је непознат CTCP]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_irc.look.display_host_join]] *irc.look.display_host_join*
+** опис: pass:none[приказ хоста у порукама приступа]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_irc.look.display_host_join_local]] *irc.look.display_host_join_local*
+** опис: pass:none[приказ хоста у порукама приступа из локалног клијента]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_irc.look.display_host_quit]] *irc.look.display_host_quit*
+** опис: pass:none[приказ хоста у порукама напуштања/изласка]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_irc.look.display_join_message]] *irc.look.display_join_message*
+** опис: pass:none[листа порука раздвојених запетама које треба да се прикажу након приступа каналу: 324 = режими канала, 329 = датум креирања канала, 332 = тема, 333 = надимак/име за тему, 353 = имена на каналу, 366 = укупан број имена]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"329,332,333,366"+`
+
+* [[option_irc.look.display_old_topic]] *irc.look.display_old_topic*
+** опис: pass:none[приказ старе теме када се измени тема]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_irc.look.display_pv_away_once]] *irc.look.display_pv_away_once*
+** опис: pass:none[порука одсутности саговорника се приказује само једном у приватном разговору]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_irc.look.display_pv_back]] *irc.look.display_pv_back*
+** опис: pass:none[приказ поруке када се саговорник врати у приватни разговор (након изласка са сервера)]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_irc.look.display_pv_warning_address]] *irc.look.display_pv_warning_address*
+** опис: pass:none[приказ упозорења у приватном баферу ако се промени адреса удаљеног надимка; ова опција је подразумевано искључена јер сервери као што је bitlbee чине да се ово упозорење прикаже и онда када се то не очекује (адреса удаљеног надимка се током пријављивања мења више пута)]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+off+`
+
+* [[option_irc.look.highlight_channel]] *irc.look.highlight_channel*
+** опис: pass:none[листа речи раздвојених запетама које треба да се истакну у баферима канала (не прави се разлика у величини слова, употребите „(?-i)” на почетку речи ако желите да се поштује разлика између малих и великих слова; специјалне променљиве $nick, $channel и $server се замењују својим вредностима), ове речи се додају у особину бафера „highlight_words” само онда када се бафер креира (не утичу на већ постојеће бафере), празан стринг искључује подразумевано истицање надимака, примери: „$nick”, „(?-i)$nick”]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"$nick"+`
+
+* [[option_irc.look.highlight_pv]] *irc.look.highlight_pv*
+** опис: pass:none[листа речи раздвојених запетама које треба да се истакну у приватним баферима (не прави се разлика у величини слова, употребите „(?-i)” на почетку речи ако желите да се поштује разлика између малих и великих слова; специјалне променљиве $nick, $channel и $server се замењују својим вредностима), ове речи се додају у особину бафера „highlight_words” само онда када се бафер креира (не утичу на већ постојеће бафере), празан стринг искључује подразумевано истицање надимака, примери: „$nick”, „(?-i)$nick”]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"$nick"+`
+
+* [[option_irc.look.highlight_server]] *irc.look.highlight_server*
+** опис: pass:none[листа речи раздвојених запетама које треба да се истакну у серверским баферима (не прави се разлика у величини слова, употребите „(?-i)” на почетку речи ако желите да се поштује разлика између малих и великих слова; специјалне променљиве $nick, $channel и $server се замењују својим вредностима), ове речи се додају у особину бафера „highlight_words” само онда када се бафер креира (не утичу на већ постојеће бафере), празан стринг искључује подразумевано истицање надимака, примери: „$nick”, „(?-i)$nick”]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"$nick"+`
+
+* [[option_irc.look.highlight_tags_restrict]] *irc.look.highlight_tags_restrict*
+** опис: pass:none[ограничава истицање на ове ознаке у irc баферима (како би се истицале само корисничке поруке, а не и поруке од сервера); ознаке морају да се раздвоје запетама и „+” може да се користи за логичко „и” између ознака; и ознакама је дозвољен џокер „*”; празна вредност дозвољава истицање било које ознаке]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"irc_privmsg,irc_notice"+`
+
+* [[option_irc.look.item_channel_modes_hide_args]] *irc.look.item_channel_modes_hide_args*
+** опис: pass:none[hide channel modes arguments if at least one of these modes is in channel modes („*” to always hide all arguments, empty value to never hide arguments); example: „kf” to hide arguments if „k” or „f” are in channel modes]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"k"+`
+
+* [[option_irc.look.item_display_server]] *irc.look.item_display_server*
+** опис: pass:none[име ставке траке у којој се приказује IRC сервер (за статусну линију)]
+** тип: целобројна
+** вредности: buffer_plugin, buffer_name
+** подразумевана вредност: `+buffer_plugin+`
+
+* [[option_irc.look.item_nick_modes]] *irc.look.item_nick_modes*
+** опис: pass:none[приказ режима надимка у ставки траке „input_prompt”]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_irc.look.item_nick_prefix]] *irc.look.item_nick_prefix*
+** опис: pass:none[приказ префикса надимка у ставки траке „input_prompt”]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_irc.look.join_auto_add_chantype]] *irc.look.join_auto_add_chantype*
+** опис: pass:none[тип канала се аутоматски додаје испред имена канала приликом команде /join ако име канала не почиње са важећим типом канала за сервер; на пример: „/join weechat” ће уствари да пошаље „/join #weechat”]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+off+`
+
+* [[option_irc.look.msgbuffer_fallback]] *irc.look.msgbuffer_fallback*
+** опис: pass:none[подразумевани циљни бафер за msgbuffer опције када је циљ приватни и када се тај приватни бафер не пронађе]
+** тип: целобројна
+** вредности: current, server
+** подразумевана вредност: `+current+`
+
+* [[option_irc.look.new_channel_position]] *irc.look.new_channel_position*
+** опис: pass:none[форсира позицију новог канала у листи бафера (none = подразумевана позиција (требало би да буде последњи бафер), next = текући бафер + 1, near_server = након последњег канала/приватног сервера)]
+** тип: целобројна
+** вредности: none, next, near_server
+** подразумевана вредност: `+none+`
+
+* [[option_irc.look.new_pv_position]] *irc.look.new_pv_position*
+** опис: pass:none[форсира позицију новог приватног бафера у листи бафера (none = подразумевана позиција (требало би да буде последњи бафер), next = текући бафер + 1, near_server = након последњег канала/приватног сервера)]
+** тип: целобројна
+** вредности: none, next, near_server
+** подразумевана вредност: `+none+`
+
+* [[option_irc.look.nick_completion_smart]] *irc.look.nick_completion_smart*
+** опис: pass:none[паметно довршавање за надимке (најпре довршава оне који су последњи говорили): speakers = сви говорници (укључујући и истакнуте), speakers_highlights = само говорници који су истакнути]
+** тип: целобројна
+** вредности: off, speakers, speakers_highlights
+** подразумевана вредност: `+speakers+`
+
+* [[option_irc.look.nick_mode]] *irc.look.nick_mode*
+** опис: pass:none[приказ режима надимка (оп, право гласа, ...) испред надимка (none = никада, prefix = само у префиксу (подразумевано), action = само у акционим порукама, both = префикс + акционе поруке)]
+** тип: целобројна
+** вредности: none, prefix, action, both
+** подразумевана вредност: `+prefix+`
+
+* [[option_irc.look.nick_mode_empty]] *irc.look.nick_mode_empty*
+** опис: pass:none[приказ размака ако је режим за надимак укључен, али надимак нема режим (није оп, нема право гласа, ...)]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+off+`
+
+* [[option_irc.look.nicks_hide_password]] *irc.look.nicks_hide_password*
+** опис: pass:none[листа надимака раздвојених запетама за које ће се лозинке скривати када се шаље порука, на пример, да се у поруци коју исписује „/msg nickserv identify password” сакрије лозинка, пример: „nickserv,nickbot”]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"nickserv"+`
+
+* [[option_irc.look.notice_as_pv]] *irc.look.notice_as_pv*
+** опис: pass:none[приказ обавештења као приватних порука (ако је ауто, користи се приватни бафер ако се пронађе)]
+** тип: целобројна
+** вредности: auto, never, always
+** подразумевана вредност: `+auto+`
+
+* [[option_irc.look.notice_welcome_redirect]] *irc.look.notice_welcome_redirect*
+** опис: pass:none[аутоматско преусмеравање поздравних обавештења канала у бафер канала; таква обавештења као циљ имају надимак, али име канала на почетку поруке обавештења, на пример ENTRYMSG обавештења која шаље Atheme IRC Services и која изгледају овако: „[#канал\] Добро дошли на овај канал...”]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_irc.look.notice_welcome_tags]] *irc.look.notice_welcome_tags*
+** опис: pass:none[листа ознака раздвојених запетама које се користе у поздравним обавештењима преусмереним на канал, на пример: „notify_private”]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+""+`
+
+* [[option_irc.look.notify_tags_ison]] *irc.look.notify_tags_ison*
+** опис: pass:none[листа ознака раздвојених запетама које се користе у порукама обавештења да се надимак повезао или прекинуо везу са сервером (резултат команде ison или monitor), на пример: „notify_message”, „notify_private” или „notify_highlight”]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"notify_message"+`
+
+* [[option_irc.look.notify_tags_whois]] *irc.look.notify_tags_whois*
+** опис: pass:none[листа ознака раздвојених запетама које се користе у порукама обавештења када се статус одсуства надимка промени (резултат команде whois), на пример: „notify_message”, „notify_private” или „notify_highlight”]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"notify_message"+`
+
+* [[option_irc.look.part_closes_buffer]] *irc.look.part_closes_buffer*
+** опис: pass:none[затварање бафера када се на каналу изврши /part]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+off+`
+
+* [[option_irc.look.pv_buffer]] *irc.look.pv_buffer*
+** опис: pass:none[спајање приватних бафера]
+** тип: целобројна
+** вредности: independent, merge_by_server, merge_all
+** подразумевана вредност: `+independent+`
+
+* [[option_irc.look.pv_tags]] *irc.look.pv_tags*
+** опис: pass:none[листа ознака раздвојених запетама које се користе у приватним порукама, на пример: „notify_message”, „notify_private” или „notify_highlight”]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"notify_private"+`
+
+* [[option_irc.look.raw_messages]] *irc.look.raw_messages*
+** опис: pass:none[број сирових порука које ће се чувати у меморији онда када се бафер сирових података затвори (поруке ће се приказати онда када се отвори бафер сирових података)]
+** тип: целобројна
+** вредности: 0 .. 65535
+** подразумевана вредност: `+256+`
+
+* [[option_irc.look.server_buffer]] *irc.look.server_buffer*
+** опис: pass:none[спајање серверских бафера; ова опција нема ефекта ако се распоред сачува и у конфликту је са овом вредности (погледајте /help layout)]
+** тип: целобројна
+** вредности: merge_with_core, merge_without_core, independent
+** подразумевана вредност: `+merge_with_core+`
+
+* [[option_irc.look.smart_filter]] *irc.look.smart_filter*
+** опис: pass:none[ако надимак не говори на каналу неколико минута, филтрирају се join/part/quit/nick поруке за њега (морате да креирате филтер на ознаку „irc_smart_filter”, погледајте /help filter)]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_irc.look.smart_filter_account]] *irc.look.smart_filter_account*
+** опис: pass:none[укључивање паметног филтера за „account” поруке]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_irc.look.smart_filter_chghost]] *irc.look.smart_filter_chghost*
+** опис: pass:none[укључивање паметног филтера за „chghost” поруке]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_irc.look.smart_filter_delay]] *irc.look.smart_filter_delay*
+** опис: pass:none[време за почетак филтрирања join/part/quit порука (у минутима): ако надимак није говорио у последњих N минута, join/part/quit се филтирира]
+** тип: целобројна
+** вредности: 1 .. 10080
+** подразумевана вредност: `+5+`
+
+* [[option_irc.look.smart_filter_join]] *irc.look.smart_filter_join*
+** опис: pass:none[укључивање паметног филтера за „join” поруке]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_irc.look.smart_filter_join_unmask]] *irc.look.smart_filter_join_unmask*
+** опис: pass:none[време након кога се уклања маскирање join поруке која је филтирана ознаком „irc_smart_filter” (у минутима): ако је надимак приступио пре максимално N минута и онда каже нешто на каналу (порука, обавештење или ажурирање теме), са join се уклања маскирање, као и ако се надимак промени након овог приступања (0 = искључено: маскирање се никада не уклања са join)]
+** тип: целобројна
+** вредности: 0 .. 10080
+** подразумевана вредност: `+30+`
+
+* [[option_irc.look.smart_filter_mode]] *irc.look.smart_filter_mode*
+** опис: pass:none[укључивање паметног филтера за „mode” поруке: „*” за филтрирање свих режима, „+” за филтрирање свих режима у префиксима сервера (на пример „ovh”), „xyz” за филтрирање само режима x/y/z, „-xyz” за филтрирање свих режима осим x/y/z; примери: „ovh”: филтрирају се режими o/v/h, „-bkl”: филтрирају се сви режими осим b/k/l]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"+"+`
+
+* [[option_irc.look.smart_filter_nick]] *irc.look.smart_filter_nick*
+** опис: pass:none[укључивање паметног филтера за „nick” поруке (измене надимка)]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_irc.look.smart_filter_quit]] *irc.look.smart_filter_quit*
+** опис: pass:none[укључивање паметног филтера за „part” и „quit” поруке]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_irc.look.temporary_servers]] *irc.look.temporary_servers*
+** опис: pass:none[укључивање аутоматског додавања привремених сервера командом /connect]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+off+`
+
+* [[option_irc.look.topic_strip_colors]] *irc.look.topic_strip_colors*
+** опис: pass:none[уклањање боја из теме (користи се само онда када се приказује наслов бафера)]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+off+`
+
+* [[option_irc.network.autoreconnect_delay_growing]] *irc.network.autoreconnect_delay_growing*
+** опис: pass:none[фактор увећавања паузе пре аутоматског поновног повезивања са сервером (1 = увек иста пауза, 2 = пауза*2 за сваки наредни покушај, итд.)]
+** тип: целобројна
+** вредности: 1 .. 100
+** подразумевана вредност: `+2+`
+
+* [[option_irc.network.autoreconnect_delay_max]] *irc.network.autoreconnect_delay_max*
+** опис: pass:none[максимална пауза пре аутоматског поновног повезивања са сервером (у секундама, 0 = нема ограничења)]
+** тип: целобројна
+** вредности: 0 .. 604800
+** подразумевана вредност: `+600+`
+
+* [[option_irc.network.ban_mask_default]] *irc.network.ban_mask_default*
+** опис: pass:none[подразумевана маска забране за команде /ban, /unban и /kickban; променљиве $nick, $user, $ident и $host се замењују својим вредностима (издвојеним из „надимак!корисник@хост”); $ident је исто што и $user ако $user не почиње са „~”, у супротном се поставља на „*”; ова подразумевана маска се користи само ако програм WeeChat зна на ком хосту је надимак]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"*!$ident@$host"+`
+
+* [[option_irc.network.colors_receive]] *irc.network.colors_receive*
+** опис: pass:none[када је искључено, кодови боја у долазним порукама се игноришу]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_irc.network.colors_send]] *irc.network.colors_send*
+** опис: pass:none[кориснику се дозвољава да шаље боје специјалним кодовима (ctrl-c + a кôд и необавезна боја: b=подебљано, cxx=боја, cxx,yy=боја+позадина, i=курзив, o=боја се искључује/атрибути, r=обрнуто, u=подвучено)]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_irc.network.lag_check]] *irc.network.lag_check*
+** опис: pass:none[интервал између две провере кашњења (у секундама, 0 = без провере)]
+** тип: целобројна
+** вредности: 0 .. 604800
+** подразумевана вредност: `+60+`
+
+* [[option_irc.network.lag_max]] *irc.network.lag_max*
+** опис: pass:none[максимално кашњење (у секундама): ако се достигне ово кашњење, програм WeeChat ће сматрати да се одговор од сервера (понг) никада неће примити, па ће одустати од бројања кашњења (0 = никада се не одустаје)]
+** тип: целобројна
+** вредности: 0 .. 604800
+** подразумевана вредност: `+1800+`
+
+* [[option_irc.network.lag_min_show]] *irc.network.lag_min_show*
+** опис: pass:none[минимално кашњење које се приказује (у милисекундама)]
+** тип: целобројна
+** вредности: 0 .. 86400000
+** подразумевана вредност: `+500+`
+
+* [[option_irc.network.lag_reconnect]] *irc.network.lag_reconnect*
+** опис: pass:none[веза са сервером се поново успоставља ако је кашњење веће или једнако овој вредности, 0 = нема поновног успостављања везе); ова вредност мора бити мања или једнака од irc.network.lag_max]
+** тип: целобројна
+** вредности: 0 .. 604800
+** подразумевана вредност: `+300+`
+
+* [[option_irc.network.lag_refresh_interval]] *irc.network.lag_refresh_interval*
+** опис: pass:none[интервал између сва освежавања ставке кашњења, када се кашњење повећава (у секундама)]
+** тип: целобројна
+** вредности: 1 .. 3600
+** подразумевана вредност: `+1+`
+
+* [[option_irc.network.notify_check_ison]] *irc.network.notify_check_ison*
+** опис: pass:none[интервал између две провере има ли обавештења IRC командом „ison” (у минутима)]
+** тип: целобројна
+** вредности: 1 .. 10080
+** подразумевана вредност: `+1+`
+
+* [[option_irc.network.notify_check_whois]] *irc.network.notify_check_whois*
+** опис: pass:none[интервал између две провере има ли обавештења IRC командом „whois” (у минутима)]
+** тип: целобројна
+** вредности: 1 .. 10080
+** подразумевана вредност: `+5+`
+
+* [[option_irc.network.sasl_fail_unavailable]] *irc.network.sasl_fail_unavailable*
+** опис: pass:none[изазива неуспех SASL аутентификације када се SASL захтева, али није доступан на серверу; када је ова опција укључена, има ефекат само ако је за сервер вредност опције „sasl_fail” постављена на „reconnect” или „disconnect”]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_irc.network.send_unknown_commands]] *irc.network.send_unknown_commands*
+** опис: pass:none[слање непознатих команди серверу]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+off+`
+
+* [[option_irc.network.whois_double_nick]] *irc.network.whois_double_nick*
+** опис: pass:none[дуплирање надимка у команди /whois command (ако је наведен само један надимак), како би се у одговору добило време неактивности; на пример: „/whois nick” ће послати „whois nick nick”]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+off+`
+
+* [[option_irc.server_default.addresses]] *irc.server_default.addresses*
+** опис: pass:none[листа имехоста/порт или IP/порт за сервер (раздвојених запетама) (напомена: садржај се израчунава, погледајте /help eval; опције сервера се израчунавају са ${irc_server.xxx} и ${server} се замењује са именом сервера)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+""+`
+
+* [[option_irc.server_default.anti_flood_prio_high]] *irc.server_default.anti_flood_prio_high*
+** опис: pass:none[спречавање засипања за ред са високим приоритетом: број секунди између две корисникове поруке које се шаљу IRC серверу (0 = нема спречавања засипања)]
+** тип: целобројна
+** вредности: 0 .. 60
+** подразумевана вредност: `+2+`
+
+* [[option_irc.server_default.anti_flood_prio_low]] *irc.server_default.anti_flood_prio_low*
+** опис: pass:none[спречавање засипања за ред са ниским приоритетом: број секунди између две поруке које се шаљу IRC серверу (поруке као што су аутоматски CTCP одговори) (0 = нема спречавања засипања)]
+** тип: целобројна
+** вредности: 0 .. 60
+** подразумевана вредност: `+2+`
+
+* [[option_irc.server_default.autoconnect]] *irc.server_default.autoconnect*
+** опис: pass:none[аутоматско повезивање са сервером током покретања се програма WeeChat]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+off+`
+
+* [[option_irc.server_default.autojoin]] *irc.server_default.autojoin*
+** опис: pass:none[листа канала раздвојених запетама којима треба да се приступи након успостављања везе са сервером (и након извршавања команде + додатно време у случају да су постављени); канали којима је неопходан кључ за приступ морају да се наведу на почетку листе, и сви кључеви морају да се задају након канала (раздвојени запетом или размаком) (пример: „#channel1,#channel2,#channel3 key1,key2” где су #channel1 и #channel2 заштићени са key1 и key2) (напомена: садржај се израчунава, погледајте /help eval; опције сервера се израчунавају са ${irc_server.xxx} и ${server} се замењује са именом сервера)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+""+`
+
+* [[option_irc.server_default.autoreconnect]] *irc.server_default.autoreconnect*
+** опис: pass:none[аутоматско поновно повезивање са сервером када се веза прекине]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_irc.server_default.autoreconnect_delay]] *irc.server_default.autoreconnect_delay*
+** опис: pass:none[време (у секундама) пре него што се покуша поновно повезивање са сервером]
+** тип: целобројна
+** вредности: 1 .. 65535
+** подразумевана вредност: `+10+`
+
+* [[option_irc.server_default.autorejoin]] *irc.server_default.autorejoin*
+** опис: pass:none[аутоматско поновно приступање каналу након избацивања; можете да дефинишете бафер локалну на каналу ако желите да премостите ову вредност (име променљиве: „autorejoin”, вредност: „on” или „off”)]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+off+`
+
+* [[option_irc.server_default.autorejoin_delay]] *irc.server_default.autorejoin_delay*
+** опис: pass:none[време (у секундама) пре него што се обави аутоматско поновно приступање каналу (након избацивања)]
+** тип: целобројна
+** вредности: 0 .. 86400
+** подразумевана вредност: `+30+`
+
+* [[option_irc.server_default.away_check]] *irc.server_default.away_check*
+** опис: pass:none[интервал између две провере на одсутност (у минутима, 0 = провера се не врши)]
+** тип: целобројна
+** вредности: 0 .. 10080
+** подразумевана вредност: `+0+`
+
+* [[option_irc.server_default.away_check_max_nicks]] *irc.server_default.away_check_max_nicks*
+** опис: pass:none[на каналима са великим бројем надимака се не врши провера одсутности надимка (0 = неограничено)]
+** тип: целобројна
+** вредности: 0 .. 1000000
+** подразумевана вредност: `+25+`
+
+* [[option_irc.server_default.capabilities]] *irc.server_default.capabilities*
+** опис: pass:none[листа могућности клијента (client capabilities) раздвојених запетама које треба да се укључе за сервер у случају да су доступне (погледајте /help cap за листу могућности које подржава програм WeeChat) (пример: „away-notify,multi-prefix”)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+""+`
+
+* [[option_irc.server_default.charset_message]] *irc.server_default.charset_message*
+** опис: pass:none[део IRC поруке (примљене или послате) који се декодира/кодира у циљни скуп карактера; порука = комплетна IRC порука (подразумевано), канал = почевши само од имена канала (ако се пронађе, ако не онда се узима текст), текст = почевши само од текста (требало би да пробате ову вредност ако имате проблеме са кодирањем имена канала)]
+** тип: целобројна
+** вредности: message, channel, text
+** подразумевана вредност: `+message+`
+
+* [[option_irc.server_default.command]] *irc.server_default.command*
+** опис: pass:none[команд(а/е) која се извршава након успостављања везе са сервером и пре ауто-приступа каналима (више команди може да се раздвоји са „;”, користите „\;” за тачка запету, специјалне променљиве $nick, $channel и $server се замењују са својим вредностима) (напомена: команде се израчунавају, погледајте /help eval; опције сервера се израчунавају са ${irc_server.xxx} и ${server} се замењује са именом сервера)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+""+`
+
+* [[option_irc.server_default.command_delay]] *irc.server_default.command_delay*
+** опис: pass:none[време (у секундама) након извршавања команде и пре ауто-приступа каналима (пример: давање мало времена за аутентификацију пре него што се приступи каналима)]
+** тип: целобројна
+** вредности: 0 .. 3600
+** подразумевана вредност: `+0+`
+
+* [[option_irc.server_default.connection_timeout]] *irc.server_default.connection_timeout*
+** опис: pass:none[време (у секундама) између TCP повезивања са сервером и пријема поруке 001, ако се достигне овај тајмаут пре него што се прими порука 001, програм WeeChat ће прекинути везу са сервером]
+** тип: целобројна
+** вредности: 1 .. 3600
+** подразумевана вредност: `+60+`
+
+* [[option_irc.server_default.default_chantypes]] *irc.server_default.default_chantypes*
+** опис: pass:none[префикси типа канала који треба да се користе у случају да их сервер не шаље у поруци 005 (подразумевана вредност је „#&”)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"#&"+`
+
+* [[option_irc.server_default.ipv6]] *irc.server_default.ipv6*
+** опис: pass:none[за комуникацију са сервером се користи IPv6 протокол (покушава се IPv6 па се прелази на IPv4 ако не ради); ако је искључено, користи се само IPv4]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_irc.server_default.local_hostname]] *irc.server_default.local_hostname*
+** опис: pass:none[прилагођено хост/IP локално име за сервер (није обавезно, ако је празно користи се име локалног хоста)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+""+`
+
+* [[option_irc.server_default.msg_kick]] *irc.server_default.msg_kick*
+** опис: pass:none[подразумевана порука избацивања која се користи са командама „/kick” и „/kickban” (напомена: садржај се израчунава, погледајте /help eval; специјалне променљиве ${nick}, (сопствени надимак), ${target} (циљни надимак), ${channel} и ${server} се замењују својим вредностима)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+""+`
+
+* [[option_irc.server_default.msg_part]] *irc.server_default.msg_part*
+** опис: pass:none[подразумевана поздравна порука (приликом напуштања канала) (напомена: садржај се израчунава, погледајте /help eval; специјалне променљиве ${nick}, ${channel} и ${server} се замењују својим вредностима; „%v” се замењује верзијом програма WeeChat ако у стрингу не постоји ниједно ${...})]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"WeeChat ${info:version}"+`
+
+* [[option_irc.server_default.msg_quit]] *irc.server_default.msg_quit*
+** опис: pass:none[подразумевана порука изласка (прекидања везе са сервером) (напомена: садржај се израчунава, погледајте /help eval; специјалне променљиве ${nick}, ${channel} и ${server} се замењују својим вредностима; „%v” се замењује верзијом програма WeeChat ако у стрингу не постоји ниједно ${...})]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"WeeChat ${info:version}"+`
+
+* [[option_irc.server_default.nicks]] *irc.server_default.nicks*
+** опис: pass:none[надимци који треба да се користе на серверу (раздвојени запетом) (напомена: садржај се израчунава, погледајте /help eval; опције сервера се израчунавају са ${irc_server.xxx} и ${server} се замењује са именом сервера)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+""+`
+
+* [[option_irc.server_default.nicks_alternate]] *irc.server_default.nicks_alternate*
+** опис: pass:none[узима се алтернативни надимак када су сви наведени надимци већ заузети на серверу: додаје неколико „_” све док надимак не буде дужине 9, па онда замењује последњи карактер (или два последња карактера) бројем од 1 до 99, све док се не пронађе надимак који је на серверу слободан]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_irc.server_default.notify]] *irc.server_default.notify*
+** опис: pass:none[листа обавештавања за сервер (не би требало да мењате ову опцију, употребите команду /notify)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+""+`
+
+* [[option_irc.server_default.password]] *irc.server_default.password*
+** опис: pass:none[лозинка за сервер (напомена: садржај се израчунава, погледајте /help eval; опције сервера се израчунавају са ${irc_server.xxx} и ${server} се замењује са именом сервера)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+""+`
+
+* [[option_irc.server_default.proxy]] *irc.server_default.proxy*
+** опис: pass:none[име проксија који се користи за овај сервер (необавезно, прокси мора бити дефинисан командом /proxy)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+""+`
+
+* [[option_irc.server_default.realname]] *irc.server_default.realname*
+** опис: pass:none[реално име које че се користити на серверу (напомена: садржај се израчунава, погледајте /help eval; опције сервера се израчунавају са ${irc_server.xxx} и ${server} се замењује са именом сервера)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+""+`
+
+* [[option_irc.server_default.sasl_fail]] *irc.server_default.sasl_fail*
+** опис: pass:none[радња која се преузима у случају да SASL аутентификација не успе: „continue” да се игнорише проблем аутентификације, „reconnect” да се закаже поновно повезивање са сервером, „disconnect” да се прекине веза са сервером (погледајте и опцију irc.network.sasl_fail_unavailable)]
+** тип: целобројна
+** вредности: continue, reconnect, disconnect
+** подразумевана вредност: `+continue+`
+
+* [[option_irc.server_default.sasl_key]] *irc.server_default.sasl_key*
+** опис: pass:none[фајл са ECC приватним кључем за механизам „ecdsa-nist256p-challenge” (путања се израчунава, погледајте функцију string_eval_path_home у референтном приручнику API додатака)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+""+`
+
+* [[option_irc.server_default.sasl_mechanism]] *irc.server_default.sasl_mechanism*
+** опис: pass:none[механизам SASL аутентификације: „plain” за просту текст лозинку, „scram-sha-1” за SCRAM аутентификацију са SHA-1 digest алгоритмом, „scram-sha-256” за SCRAM аутентификацију са SHA-256 digest алгоритмом, „scram-sha-512” за SCRAM аутентификацију са SHA-512 digest алгоритмом, „ecdsa-nist256p-challenge” за аутентификацију са изазовом базираним на кључу, „external” за аутентификацију употребом SSL сертификата са клијентске стране, „dh-blowfish” за blowfish шифровану лозинку (није безбедно, не препоручује се), „dh-aes” за AES шифровану лозинку (није безбедно, не препоручује се)]
+** тип: целобројна
+** вредности: plain, scram-sha-1, scram-sha-256, scram-sha-512, ecdsa-nist256p-challenge, external, dh-blowfish, dh-aes
+** подразумевана вредност: `+plain+`
+
+* [[option_irc.server_default.sasl_password]] *irc.server_default.sasl_password*
+** опис: pass:none[лозинка за SASL аутентификацију; ова опција се не користи за механизме „ecdsa-nist256p-challenge” и „external” (напомена: садржај се израчунава, погледајте /help eval; опције сервера се израчунавају са ${irc_server.xxx} и ${server} се замењује са именом сервера)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+""+`
+
+* [[option_irc.server_default.sasl_timeout]] *irc.server_default.sasl_timeout*
+** опис: pass:none[тајмаут (у секундама) пре него што се одустане од SASL аутентификације]
+** тип: целобројна
+** вредности: 1 .. 3600
+** подразумевана вредност: `+15+`
+
+* [[option_irc.server_default.sasl_username]] *irc.server_default.sasl_username*
+** опис: pass:none[корисничко име за SASL аутентификацију; ова опција се не користи за механизам „external” (напомена: садржај се израчунава, погледајте /help eval; опције сервера се израчунавају са ${irc_server.xxx} и ${server} се замењује са именом сервера)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+""+`
+
+* [[option_irc.server_default.split_msg_max_length]] *irc.server_default.split_msg_max_length*
+** опис: pass:none[одлазне IRC поруке се деле тако да стају у овај број карактера; подразумевана вредност је 512, ово је безбедна и препоручена вредност; вредност 0 искључује поделу (не препоручује се, осим ако знате шта радите); дозвољене вредности су 0 или било који цео број између 128 и 4096; ова опција би требало да се промени само за нестандардне IRC сервере, као што су на пример гејтвеји као bitlbee]
+** тип: целобројна
+** вредности: 0 .. 4096
+** подразумевана вредност: `+512+`
+
+* [[option_irc.server_default.ssl]] *irc.server_default.ssl*
+** опис: pass:none[за комуникацију са сервером се користи SSL]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+off+`
+
+* [[option_irc.server_default.ssl_cert]] *irc.server_default.ssl_cert*
+** опис: pass:none[Фајл SSL сертификата који се користи за аутоматску идентификацију вашег надимка (путања се израчунава, функцију погледајте string_eval_path_home у референтном приручнику API додатака)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+""+`
+
+* [[option_irc.server_default.ssl_dhkey_size]] *irc.server_default.ssl_dhkey_size*
+** опис: pass:none[величина кључа који се користи током Дифи-Хелман размене кључа]
+** тип: целобројна
+** вредности: 0 .. 2147483647
+** подразумевана вредност: `+2048+`
+
+* [[option_irc.server_default.ssl_fingerprint]] *irc.server_default.ssl_fingerprint*
+** опис: pass:none[отисак сертификата којем се верује и који сервер прихвата; дозвољене су само хексадецималне цифре (0-9, a-f): 128 карактера за SHA-512, 64 карактера за SHA-256, 40 карактера за SHA-1 (није безбедно, не препоручује се); више отисака може да се раздвоји запетама; ако је ова опција постављена, остале провере над сертификатом се НЕ врше (опција „ssl_verify”) (напомена: садржај се израчунава, погледајте /help eval; опције сервера се израчунавају са ${irc_server.xxx} и ${server} се замењује са именом сервера)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+""+`
+
+* [[option_irc.server_default.ssl_password]] *irc.server_default.ssl_password*
+** опис: pass:none[лозинка за приватни кључ SSL сертификата; користи се ако ако је gnutls верзија >= 3.1.0 (напомена: садржај се израчунава, погледајте /help eval; опције сервера се израчунавају са ${irc_server.xxx} и ${server} се замењује са именом сервера)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+""+`
+
+* [[option_irc.server_default.ssl_priorities]] *irc.server_default.ssl_priorities*
+** опис: pass:none[стринг са приоритетима за gnutls (за синтаксу погледајте документацију функције gnutls_priority_init у gnutls упутству, уобичајени стрингови су: „PERFORMANCE”, „NORMAL”, „SECURE128”, „SECURE256”, „EXPORT”, „NONE”)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"NORMAL:-VERS-SSL3.0"+`
+
+* [[option_irc.server_default.ssl_verify]] *irc.server_default.ssl_verify*
+** опис: pass:none[провера да ли се SSL конекцији потпуно верује]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_irc.server_default.usermode]] *irc.server_default.usermode*
+** опис: pass:none[кориснички режим(и) који треба да се поставе након повезивања са сервером и пре извршавања команде и ауто-приступа каналима; примери: „+R” (да се постави режим „R”), „+R-i” (да се постави режим „R” и уклони „i”); погледајте /help mode за комплетну синтаксу режима (напомена: садржај се израчунава, погледајте /help eval; опције сервера се израчунавају са ${irc_server.xxx} и ${server} се замењује са именом сервера)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+""+`
+
+* [[option_irc.server_default.username]] *irc.server_default.username*
+** опис: pass:none[корисничко име које се користи на серверу (напомена: садржај се израчунава, погледајте /help eval; опције сервера се израчунавају са ${irc_server.xxx} и ${server} се замењује са именом сервера)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+""+`
+// end::irc_options[]
+
+// tag::relay_options[]
+* [[option_relay.color.client]] *relay.color.client*
+** опис: pass:none[боја текста за опис клијента]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+cyan+`
+
+* [[option_relay.color.status_active]] *relay.color.status_active*
+** опис: pass:none[боја текста за статус „connected”]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+green+`
+
+* [[option_relay.color.status_auth_failed]] *relay.color.status_auth_failed*
+** опис: pass:none[боја текста за статус „authentication failed”]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+lightmagenta+`
+
+* [[option_relay.color.status_connecting]] *relay.color.status_connecting*
+** опис: pass:none[боја текста за статус „connecting”]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+white+`
+
+* [[option_relay.color.status_disconnected]] *relay.color.status_disconnected*
+** опис: pass:none[боја текста за статус „disconnected”]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+lightred+`
+
+* [[option_relay.color.status_waiting_auth]] *relay.color.status_waiting_auth*
+** опис: pass:none[боја текста за статус „waiting authentication”]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+yellow+`
+
+* [[option_relay.color.text]] *relay.color.text*
+** опис: pass:none[боја текста у релеј баферу]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+default+`
+
+* [[option_relay.color.text_bg]] *relay.color.text_bg*
+** опис: pass:none[боја позадине у релеј баферу]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+default+`
+
+* [[option_relay.color.text_selected]] *relay.color.text_selected*
+** опис: pass:none[боја текста изабране линије у релеј баферу]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+white+`
+
+* [[option_relay.irc.backlog_max_minutes]] *relay.irc.backlog_max_minutes*
+** опис: pass:none[максимални број минута у старијим линијама по IRC каналу (0 = без ограничења, примери: 1440 = један дан, 10080 = једна недеља, 43200 = један месец, 525600 = једна година)]
+** тип: целобројна
+** вредности: 0 .. 2147483647
+** подразумевана вредност: `+0+`
+
+* [[option_relay.irc.backlog_max_number]] *relay.irc.backlog_max_number*
+** опис: pass:none[максимални број старијих линија по IRC каналу (0 = без ограничења)]
+** тип: целобројна
+** вредности: 0 .. 2147483647
+** подразумевана вредност: `+1024+`
+
+* [[option_relay.irc.backlog_since_last_disconnect]] *relay.irc.backlog_since_last_disconnect*
+** опис: pass:none[старије линије се приказују од тренутка последњег прекида везе са клијентом]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_relay.irc.backlog_since_last_message]] *relay.irc.backlog_since_last_message*
+** опис: pass:none[старије линије се приказују од ваше последње поруке]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+off+`
+
+* [[option_relay.irc.backlog_tags]] *relay.irc.backlog_tags*
+** опис: pass:none[листа ознака порука раздвојених запетама које се приказују у старијим линијама по IRC каналу (подржане су следеће ознаке: „irc_join”, „irc_part”, „irc_quit”, „irc_nick”, „irc_privmsg”), „*” = све подржане ознаке]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"irc_privmsg"+`
+
+* [[option_relay.irc.backlog_time_format]] *relay.irc.backlog_time_format*
+** опис: pass:none[формат времена у линијама старијих порука (погледајте man strftime за формат) (не користи се ако је клијент укључио „server-time” могућност сервера, јер се време шаље као irc ознака); празан стринг = време је искључено у линијама старијих порука]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"[%H:%M] "+`
+
+* [[option_relay.look.auto_open_buffer]] *relay.look.auto_open_buffer*
+** опис: pass:none[ауто отварање релеј бафера када се повезује нови корисник]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_relay.look.raw_messages]] *relay.look.raw_messages*
+** опис: pass:none[број сирових порука које ће се чувати у меморији онда када се бафер сирових података затвори (поруке ће се приказати онда када се отвори бафер сирових података)]
+** тип: целобројна
+** вредности: 0 .. 65535
+** подразумевана вредност: `+256+`
+
+* [[option_relay.network.allow_empty_password]] *relay.network.allow_empty_password*
+** опис: pass:none[у релеју се дозвољава празна лозинка (требало би да се укључи само током тестирања или у локалној мрежи)]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+off+`
+
+* [[option_relay.network.allowed_ips]] *relay.network.allowed_ips*
+** опис: pass:none[POSIX проширени регуларни израз са IP адресама којима је дозвољено да користе релеј (без разликовања величине слова, употребите „(?-i)” на почетку ако желите да се разликују мала и велика слова), пример: „^(123\.45\.67\.89|192\.160\..*)$”]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+""+`
+
+* [[option_relay.network.auth_timeout]] *relay.network.auth_timeout*
+** опис: pass:none[тајмаут (у секундама) за аутентификацију клијента: веза се прекида ако се клијент не аутентификује након протека овог времена и статус клијента се поставља на „аутентификација није успела” (0 = чека се довека)]
+** тип: целобројна
+** вредности: 0 .. 2147483647
+** подразумевана вредност: `+60+`
+
+* [[option_relay.network.bind_address]] *relay.network.bind_address*
+** опис: pass:none[адреса на коју се везује (ако је празно, веза може да се успостави на свим интерфејсима, употребите „127.0.0.1” ако желите да дозволите успостављање везе само са локалне машине)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+""+`
+
+* [[option_relay.network.clients_purge_delay]] *relay.network.clients_purge_delay*
+** опис: pass:none[време за чишћење клијената који су прекинули везу (у минутима, 0 = клијенти се чисте тренутно, -1 = никада се не чисти)]
+** тип: целобројна
+** вредности: -1 .. 43200
+** подразумевана вредност: `+0+`
+
+* [[option_relay.network.compression_level]] *relay.network.compression_level*
+** опис: pass:none[ниво компресије за пакете који се шаљу клијенту WeeChat протоколом (0 = компресија је искључена, 1 = ниска компресија ... 9 = најбоља компресија)]
+** тип: целобројна
+** вредности: 0 .. 9
+** подразумевана вредност: `+6+`
+
+* [[option_relay.network.ipv6]] *relay.network.ipv6*
+** опис: pass:none[подразумевано се слуша на IPv6 сокету (уз IPv4 који је подразумеван); протоколи IPv4 и IPv6 могу да се форсирају (појединачно или заједно) у имену протокола (погледајте /help relay)]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_relay.network.max_clients]] *relay.network.max_clients*
+** опис: pass:none[максимални број клијената који се повезују на порт (0 = без ограничења)]
+** тип: целобројна
+** вредности: 0 .. 2147483647
+** подразумевана вредност: `+5+`
+
+* [[option_relay.network.nonce_size]] *relay.network.nonce_size*
+** опис: pass:none[величина нонса (у бајтовима), који се генерише када се клијент повеже; клијент мора да користи овај нонс, надовезан на клијентски нонс и лозинку када хешира лозинку у „init” команди weechat протокола]
+** тип: целобројна
+** вредности: 8 .. 128
+** подразумевана вредност: `+16+`
+
+* [[option_relay.network.password]] *relay.network.password*
+** опис: pass:none[лозинка која се захтева од клијената за приступ овом релеју (празна вредност значи да лозинка није потребна, погледајте опцију relay.network.allow_empty_password) (напомена: садржај се израчунава, погледајте /help eval)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+""+`
+
+* [[option_relay.network.password_hash_algo]] *relay.network.password_hash_algo*
+** опис: pass:none[листа хеш алгоритама раздвојених запетама који се користе за аутентификацију лозинке у weechat протоколу, могу бити: „plain” (лозинка је чисти текст, не хешира се), „sha256”, „sha512”, „pbkdf2+sha256”, „pbkdf2+sha512”), „*” значи сви алгоритми, име које почиње са „!” је негативна вредност којим се спречава употреба тог алгоритма, у именима је дозвољена употреба џокера „*” (примери: „*”, „pbkdf2*”, „*,!plain”)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"*"+`
+
+* [[option_relay.network.password_hash_iterations]] *relay.network.password_hash_iterations*
+** опис: pass:none[број итерација који се захтева од клијента у weechat протоколу када се за аутентификацију користи лозинка хеширана PBKDF2 алгоритмом ; више итерација је боље у смислу безбедности, али је спорије за израчунавање; ако је ваш CPU спор, овај број не би требало да буде сувише велики]
+** тип: целобројна
+** вредности: 1 .. 1000000
+** подразумевана вредност: `+100000+`
+
+* [[option_relay.network.ssl_cert_key]] *relay.network.ssl_cert_key*
+** опис: pass:none[фајл са SSL сертификатом и приватним кључем (за опслуживање клијената преко SSL) (путања се израчунава, погледајте функцију string_eval_path_home у референтном приручнику API додатака)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"${weechat_config_dir}/ssl/relay.pem"+`
+
+* [[option_relay.network.ssl_priorities]] *relay.network.ssl_priorities*
+** опис: pass:none[стринг са приоритетима за gnutls (за синтаксу погледајте документацију функције gnutls_priority_init у gnutls упутству, уобичајени стрингови су: „PERFORMANCE”, „NORMAL”, „SECURE128”, „SECURE256”, „EXPORT”, „NONE”)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"NORMAL:-VERS-SSL3.0"+`
+
+* [[option_relay.network.totp_secret]] *relay.network.totp_secret*
+** опис: pass:none[тајна за генерисање Time-based One-Time Password (TOTP), кодирана у base32 (само слова и цифре од 2 до 7); у weechat протоколу се, уз лозинку, користи као други фактор, не сме бити празна (празна вредност значи да се TOTP не захтева) (напомена: садржај се израчунава, погледајте /help eval)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+""+`
+
+* [[option_relay.network.totp_window]] *relay.network.totp_window*
+** опис: pass:none[Број Time-based One-Time Passwords лозинки које се прихватају пре и након текуће: 0 = прихвата се само текућа лозинка, 1 = прихвата се једна лозинка пре, текућа и једна након, 2 = прихватају се две лозинке пре, текућа и два након, ...; велики број умањује ниво безбедности (препоручене вредности су 0 или 1)]
+** тип: целобројна
+** вредности: 0 .. 256
+** подразумевана вредност: `+0+`
+
+* [[option_relay.network.websocket_allowed_origins]] *relay.network.websocket_allowed_origins*
+** опис: pass:none[POSIX проширени регуларни израз са пореклима која се дозвољавају у вебсокетима (без разликовања малих и великих слова, ако желите да се прави разлика, употребите „(?-i)” на почетку), пример: „^https?://(www\.)?example\.(com|org)”]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+""+`
+
+* [[option_relay.weechat.commands]] *relay.weechat.commands*
+** опис: pass:none[листа команди раздвојених запетама које су дозвољене/забрањене када се од клијента приме улазни подаци (текст или команда); „*” значи било која команда, име које почиње са „!” је негативна вредност којом се спречава да се команда изврши, у именима је дозвољен џокер „*”; ова опција би требало да се постави ако релеј клијент није безбедан (неко би могао да га користи за покретање команди); на пример „*,!exec,!quit” дозвољава све команде осим /exec и /quit]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+""+`
+// end::relay_options[]
+
+// tag::javascript_options[]
+* [[option_javascript.look.check_license]] *javascript.look.check_license*
+** опис: pass:none[провера лиценце скрипти када се учитавају: ако се лиценца разликује од лиценце додатка, исписује се упозорење]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+off+`
+
+* [[option_javascript.look.eval_keep_context]] *javascript.look.eval_keep_context*
+** опис: pass:none[задржава се контекст између два позива израчунавања изворног кода (опција „eval” команде script или info „%s_eval”); за израчунавање кода скрипте се користи скривена скрипта; ако је ова опција искључена, ова скривена скрипта се уклања из меморије након сваког израчунавања: ово троши мање меморије, али је спорије]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+// end::javascript_options[]
+
+// tag::ruby_options[]
+* [[option_ruby.look.check_license]] *ruby.look.check_license*
+** опис: pass:none[провера лиценце скрипти када се учитавају: ако се лиценца разликује од лиценце додатка, исписује се упозорење]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+off+`
+
+* [[option_ruby.look.eval_keep_context]] *ruby.look.eval_keep_context*
+** опис: pass:none[задржава се контекст између два позива израчунавања изворног кода (опција „eval” команде script или info „%s_eval”); за израчунавање кода скрипте се користи скривена скрипта; ако је ова опција искључена, ова скривена скрипта се уклања из меморије након сваког израчунавања: ово троши мање меморије, али је спорије]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+// end::ruby_options[]
+
+// tag::guile_options[]
+* [[option_guile.look.check_license]] *guile.look.check_license*
+** опис: pass:none[провера лиценце скрипти када се учитавају: ако се лиценца разликује од лиценце додатка, исписује се упозорење]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+off+`
+
+* [[option_guile.look.eval_keep_context]] *guile.look.eval_keep_context*
+** опис: pass:none[задржава се контекст између два позива израчунавања изворног кода (опција „eval” команде script или info „%s_eval”); за израчунавање кода скрипте се користи скривена скрипта; ако је ова опција искључена, ова скривена скрипта се уклања из меморије након сваког израчунавања: ово троши мање меморије, али је спорије]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+// end::guile_options[]
+
+// tag::tcl_options[]
+* [[option_tcl.look.check_license]] *tcl.look.check_license*
+** опис: pass:none[провера лиценце скрипти када се учитавају: ако се лиценца разликује од лиценце додатка, исписује се упозорење]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+off+`
+
+* [[option_tcl.look.eval_keep_context]] *tcl.look.eval_keep_context*
+** опис: pass:none[задржава се контекст између два позива израчунавања изворног кода (опција „eval” команде script или info „%s_eval”); за израчунавање кода скрипте се користи скривена скрипта; ако је ова опција искључена, ова скривена скрипта се уклања из меморије након сваког израчунавања: ово троши мање меморије, али је спорије]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+// end::tcl_options[]
+
+// tag::perl_options[]
+* [[option_perl.look.check_license]] *perl.look.check_license*
+** опис: pass:none[провера лиценце скрипти када се учитавају: ако се лиценца разликује од лиценце додатка, исписује се упозорење]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+off+`
+
+* [[option_perl.look.eval_keep_context]] *perl.look.eval_keep_context*
+** опис: pass:none[задржава се контекст између два позива израчунавања изворног кода (опција „eval” команде script или info „%s_eval”); за израчунавање кода скрипте се користи скривена скрипта; ако је ова опција искључена, ова скривена скрипта се уклања из меморије након сваког израчунавања: ово троши мање меморије, али је спорије]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+// end::perl_options[]
+
+// tag::php_options[]
+* [[option_php.look.check_license]] *php.look.check_license*
+** опис: pass:none[провера лиценце скрипти када се учитавају: ако се лиценца разликује од лиценце додатка, исписује се упозорење]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+off+`
+
+* [[option_php.look.eval_keep_context]] *php.look.eval_keep_context*
+** опис: pass:none[задржава се контекст између два позива израчунавања изворног кода (опција „eval” команде script или info „%s_eval”); за израчунавање кода скрипте се користи скривена скрипта; ако је ова опција искључена, ова скривена скрипта се уклања из меморије након сваког израчунавања: ово троши мање меморије, али је спорије]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+// end::php_options[]
+
+// tag::lua_options[]
+* [[option_lua.look.check_license]] *lua.look.check_license*
+** опис: pass:none[провера лиценце скрипти када се учитавају: ако се лиценца разликује од лиценце додатка, исписује се упозорење]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+off+`
+
+* [[option_lua.look.eval_keep_context]] *lua.look.eval_keep_context*
+** опис: pass:none[задржава се контекст између два позива израчунавања изворног кода (опција „eval” команде script или info „%s_eval”); за израчунавање кода скрипте се користи скривена скрипта; ако је ова опција искључена, ова скривена скрипта се уклања из меморије након сваког израчунавања: ово троши мање меморије, али је спорије]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+// end::lua_options[]
+
+// tag::python_options[]
+* [[option_python.look.check_license]] *python.look.check_license*
+** опис: pass:none[провера лиценце скрипти када се учитавају: ако се лиценца разликује од лиценце додатка, исписује се упозорење]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+off+`
+
+* [[option_python.look.eval_keep_context]] *python.look.eval_keep_context*
+** опис: pass:none[задржава се контекст између два позива израчунавања изворног кода (опција „eval” команде script или info „%s_eval”); за израчунавање кода скрипте се користи скривена скрипта; ако је ова опција искључена, ова скривена скрипта се уклања из меморије након сваког израчунавања: ово троши мање меморије, али је спорије]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+// end::python_options[]
+
+// tag::script_options[]
+* [[option_script.color.status_autoloaded]] *script.color.status_autoloaded*
+** опис: pass:none[боја за статус „аутоучитана” („a”)]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+cyan+`
+
+* [[option_script.color.status_held]] *script.color.status_held*
+** опис: pass:none[боја за статус „задржана” („H”)]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+white+`
+
+* [[option_script.color.status_installed]] *script.color.status_installed*
+** опис: pass:none[боја за статус „инсталирана” („i”)]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+lightcyan+`
+
+* [[option_script.color.status_obsolete]] *script.color.status_obsolete*
+** опис: pass:none[боја за статус „застарела” („N”)]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+lightmagenta+`
+
+* [[option_script.color.status_popular]] *script.color.status_popular*
+** опис: pass:none[боја за статус „популарна” („*”)]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+yellow+`
+
+* [[option_script.color.status_running]] *script.color.status_running*
+** опис: pass:none[боја за статус „извршава се” („r”)]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+lightgreen+`
+
+* [[option_script.color.status_unknown]] *script.color.status_unknown*
+** опис: pass:none[боја за статус „непозната” („?”)]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+lightred+`
+
+* [[option_script.color.text]] *script.color.text*
+** опис: pass:none[боја текста у скрипт баферу]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+default+`
+
+* [[option_script.color.text_bg]] *script.color.text_bg*
+** опис: pass:none[боја позадине у скрипт баферу]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+default+`
+
+* [[option_script.color.text_bg_selected]] *script.color.text_bg_selected*
+** опис: pass:none[боја позадине за изабрану линију у скрипт баферу]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+red+`
+
+* [[option_script.color.text_date]] *script.color.text_date*
+** опис: pass:none[боја текста за датуме у скрипт баферу]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+default+`
+
+* [[option_script.color.text_date_selected]] *script.color.text_date_selected*
+** опис: pass:none[боја текста за датуме у изабраној линији скрипт бафера]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+white+`
+
+* [[option_script.color.text_delimiters]] *script.color.text_delimiters*
+** опис: pass:none[боја текста за граничнике у скрипт баферу]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+default+`
+
+* [[option_script.color.text_description]] *script.color.text_description*
+** опис: pass:none[боја текста за опис у скрипт баферу]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+default+`
+
+* [[option_script.color.text_description_selected]] *script.color.text_description_selected*
+** опис: pass:none[боја текста за опис у изабраној линији скрипт бафера]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+white+`
+
+* [[option_script.color.text_extension]] *script.color.text_extension*
+** опис: pass:none[боја текста за екстензију у скрипт баферу]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+default+`
+
+* [[option_script.color.text_extension_selected]] *script.color.text_extension_selected*
+** опис: pass:none[боја текста за екстензију у изабраној линији скрипт бафера]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+white+`
+
+* [[option_script.color.text_name]] *script.color.text_name*
+** опис: pass:none[боја текста за име скрипте у скрипт баферу]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+cyan+`
+
+* [[option_script.color.text_name_selected]] *script.color.text_name_selected*
+** опис: pass:none[боја текста за име скрипте у изабраној линији скрипт бафера]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+lightcyan+`
+
+* [[option_script.color.text_selected]] *script.color.text_selected*
+** опис: pass:none[боја текста за изабрану линију у скрипт баферу]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+white+`
+
+* [[option_script.color.text_tags]] *script.color.text_tags*
+** опис: pass:none[боја текста за ознаке у скрипт баферу]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+brown+`
+
+* [[option_script.color.text_tags_selected]] *script.color.text_tags_selected*
+** опис: pass:none[боја текста за ознаке у изабраној линији скрипт бафера]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+yellow+`
+
+* [[option_script.color.text_version]] *script.color.text_version*
+** опис: pass:none[боја текста за верзију у скрипт баферу]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+magenta+`
+
+* [[option_script.color.text_version_loaded]] *script.color.text_version_loaded*
+** опис: pass:none[боја текста за учитану верзију у скрипт баферу]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+default+`
+
+* [[option_script.color.text_version_loaded_selected]] *script.color.text_version_loaded_selected*
+** опис: pass:none[боја текста за учитану верзију у изабраној линији скрипт бафера]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+white+`
+
+* [[option_script.color.text_version_selected]] *script.color.text_version_selected*
+** опис: pass:none[боја текста за верзију у изабраној линији скрипт бафера]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+lightmagenta+`
+
+* [[option_script.look.columns]] *script.look.columns*
+** опис: pass:none[формат колона које се приказују у скрипт баферу: следећи идентификатори колоне се замењују својим вредностима: %a=аутор, %d=опис, %D=датум додавања, %e=екстензија, %l=језик, %L=лиценца, %n=име са екстензијом, %N=име, %r=захтеви, %s=статус, %t=ознаке, %u=датум ажурирања, %v=верзија, %V=верзија учитане скрипте, %w=min_weechat, %W=max_weechat)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"%s %n %V %v %u | %d | %t"+`
+
+* [[option_script.look.diff_color]] *script.look.diff_color*
+** опис: pass:none[бојење излаза diff]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_script.look.diff_command]] *script.look.diff_command*
+** опис: pass:none[команда која се користи за приказ разлика између инсталиране скрипте и њене нове верзије у репозиторијуму („auto” = ауто детекција diff команде (git или diff), празна вредност = diff је искључен, други стринг = име команде, на пример „diff”)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"auto"+`
+
+* [[option_script.look.display_source]] *script.look.display_source*
+** опис: pass:none[приказ изворног кода скрипте у баферу са детаљима скрипте (скрипта се преузима у привремени фајл када се приказују детаљи скрипте)]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_script.look.quiet_actions]] *script.look.quiet_actions*
+** опис: pass:none[тихе акције у скрипт баферу: поруке се не приказују у основном баферу онда када се скрипте инсталирају/бришу/учитавају/уклањају из меморије (приказују се само грешке)]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_script.look.sort]] *script.look.sort*
+** опис: pass:none[подразумевани тастери сортирања за скрипте: листа идентификатора раздвојених запетама: a=аутор, A=аутоучитана, d=датум додавања, e=екстензија, i=инсталирана, l=језик, n=име, o=застарела, p=популарност, r=извршава се, u=датум ажурирања; испред идентификатора може да се користи карактер „-” чиме се обрће редослед; на пример: „i,u”: најпре инсталиране скрипте, сортиране по датуму ажурирања]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"i,p,n"+`
+
+* [[option_script.look.translate_description]] *script.look.translate_description*
+** опис: pass:none[превод описа скрипти (ако је за ваш језик превод доступан, иначе се користи енглеска верзија)]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_script.look.use_keys]] *script.look.use_keys*
+** опис: pass:none[употреба тастера alt+X у скрипт баферу за извршавање акција над скриптама (alt+i = инсталација, alt+r = брисање, ...); ако је искључено, дозвољен је само унос: i, r, ...]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_script.scripts.autoload]] *script.scripts.autoload*
+** опис: pass:none[аутоучитавање инсталираних скрипти (прави линк у „autoload” директоријуму на скрипту у родитељ-директоријуму)]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_script.scripts.cache_expire]] *script.scripts.cache_expire*
+** опис: pass:none[застарелост локалног кеша, у минутима (-1 = никада не застарева, 0 = увек застарева)]
+** тип: целобројна
+** вредности: -1 .. 525600
+** подразумевана вредност: `+1440+`
+
+* [[option_script.scripts.download_enabled]] *script.scripts.download_enabled*
+** опис: pass:none[омогућавање преузимања фајлова из репозиторијума скрипти када се користи команда /script (листе скрипти и самих скрипти); листа скрипти се преузима са URL адресе наведене у опцији script.scripts.url; програм WeeChat ће понекад поново да преузме листу скрипти када употребите команду /script, чак и ако не инсталирате скрипту]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+off+`
+
+* [[option_script.scripts.download_timeout]] *script.scripts.download_timeout*
+** опис: pass:none[тајмаут (у секундама) за преузимање скрипти и листе скрипти]
+** тип: целобројна
+** вредности: 1 .. 3600
+** подразумевана вредност: `+30+`
+
+* [[option_script.scripts.hold]] *script.scripts.hold*
+** опис: pass:none[скрипте које се „задржавају”: листа скрипти раздвојених запетама које се никада неће ажурирати и које не могу да се обришу, на пример: „go.py,urlserver.py”]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+""+`
+
+* [[option_script.scripts.path]] *script.scripts.path*
+** опис: pass:none[директоријум локалног кеша за скрипте (путања се израчунава, погледајте функцију string_eval_path_home у референтном приручнику API додатака)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"${weechat_cache_dir}/script"+`
+
+* [[option_script.scripts.url]] *script.scripts.url*
+** опис: pass:none[URL фајла са листом скрипти]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"https://weechat.org/files/plugins.xml.gz"+`
+// end::script_options[]
+
+// tag::fset_options[]
+* [[option_fset.color.default_value]] *fset.color.default_value*
+** опис: pass:none[боја за подразумевану вредност]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+default+`
+
+* [[option_fset.color.default_value_selected]] *fset.color.default_value_selected*
+** опис: pass:none[боја за подразумевану вредност у изабраној линији]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+white+`
+
+* [[option_fset.color.description]] *fset.color.description*
+** опис: pass:none[боја за опис]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+default+`
+
+* [[option_fset.color.description_selected]] *fset.color.description_selected*
+** опис: pass:none[боја за опис у изабраној линији]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+white+`
+
+* [[option_fset.color.file]] *fset.color.file*
+** опис: pass:none[боја за фајл]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+default+`
+
+* [[option_fset.color.file_changed]] *fset.color.file_changed*
+** опис: pass:none[боја за фајл у случају да је вредност промењена]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+brown+`
+
+* [[option_fset.color.file_changed_selected]] *fset.color.file_changed_selected*
+** опис: pass:none[боја за фајл у изабраној линији у случају да је вредност промењена]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+yellow+`
+
+* [[option_fset.color.file_selected]] *fset.color.file_selected*
+** опис: pass:none[боја за фајл у изабраној линији]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+white+`
+
+* [[option_fset.color.help_default_value]] *fset.color.help_default_value*
+** опис: pass:none[боја за подразумевану вредност у траци за помоћ]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+white+`
+
+* [[option_fset.color.help_description]] *fset.color.help_description*
+** опис: pass:none[боја за опис у траци за помоћ]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+default+`
+
+* [[option_fset.color.help_name]] *fset.color.help_name*
+** опис: pass:none[боја за име у траци за помоћ]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+white+`
+
+* [[option_fset.color.help_quotes]] *fset.color.help_quotes*
+** опис: pass:none[боја за знаке навода око стринг вредности]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+darkgray+`
+
+* [[option_fset.color.help_values]] *fset.color.help_values*
+** опис: pass:none[боја за дозвољене вредности]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+default+`
+
+* [[option_fset.color.index]] *fset.color.index*
+** опис: pass:none[боја за индекс опције]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+cyan+`
+
+* [[option_fset.color.index_selected]] *fset.color.index_selected*
+** опис: pass:none[боја за индекс опције у изабраној линији]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+lightcyan+`
+
+* [[option_fset.color.line_marked_bg1]] *fset.color.line_marked_bg1*
+** опис: pass:none[боја позадине за маркирану линију (користи се са првим форматом, погледајте опцију fset.format.option1)]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+default+`
+
+* [[option_fset.color.line_marked_bg2]] *fset.color.line_marked_bg2*
+** опис: pass:none[боја позадине за маркирану линију (користи се са другим форматом, погледајте опцију fset.format.option2)]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+default+`
+
+* [[option_fset.color.line_selected_bg1]] *fset.color.line_selected_bg1*
+** опис: pass:none[боја позадине за изабрану линију (користи се са првим форматом, погледајте опцију fset.format.option1)]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+blue+`
+
+* [[option_fset.color.line_selected_bg2]] *fset.color.line_selected_bg2*
+** опис: pass:none[боја позадине за изабрану линију (користи се са другим форматом, погледајте опцију fset.format.option2)]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+red+`
+
+* [[option_fset.color.marked]] *fset.color.marked*
+** опис: pass:none[боја за индикатор маркера]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+brown+`
+
+* [[option_fset.color.marked_selected]] *fset.color.marked_selected*
+** опис: pass:none[боја за индикатор маркера на изабраној линији]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+yellow+`
+
+* [[option_fset.color.max]] *fset.color.max*
+** опис: pass:none[боја за макс вредност]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+default+`
+
+* [[option_fset.color.max_selected]] *fset.color.max_selected*
+** опис: pass:none[боја за макс вредност у изабраној линији]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+white+`
+
+* [[option_fset.color.min]] *fset.color.min*
+** опис: pass:none[боја за мин вредност]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+default+`
+
+* [[option_fset.color.min_selected]] *fset.color.min_selected*
+** опис: pass:none[боја за мин вредност у изабраној линији]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+white+`
+
+* [[option_fset.color.name]] *fset.color.name*
+** опис: pass:none[боја за име]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+default+`
+
+* [[option_fset.color.name_changed]] *fset.color.name_changed*
+** опис: pass:none[боја за име у случају да је вредност промењена]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+brown+`
+
+* [[option_fset.color.name_changed_selected]] *fset.color.name_changed_selected*
+** опис: pass:none[боја за име у изабраној линији у случају да је вредност промењена]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+yellow+`
+
+* [[option_fset.color.name_selected]] *fset.color.name_selected*
+** опис: pass:none[боја за име у изабраној линији]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+white+`
+
+* [[option_fset.color.option]] *fset.color.option*
+** опис: pass:none[боја за опцију]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+default+`
+
+* [[option_fset.color.option_changed]] *fset.color.option_changed*
+** опис: pass:none[боја за опцију у случају да је вредност промењена]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+brown+`
+
+* [[option_fset.color.option_changed_selected]] *fset.color.option_changed_selected*
+** опис: pass:none[боја за опцију у изабраној линији у случају да је вредност промењена]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+yellow+`
+
+* [[option_fset.color.option_selected]] *fset.color.option_selected*
+** опис: pass:none[боја за опцију у изабраној линији]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+white+`
+
+* [[option_fset.color.parent_name]] *fset.color.parent_name*
+** опис: pass:none[боја за име родитељ-опције]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+default+`
+
+* [[option_fset.color.parent_name_selected]] *fset.color.parent_name_selected*
+** опис: pass:none[боја за име родитељ-опције у изабраној линији]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+white+`
+
+* [[option_fset.color.parent_value]] *fset.color.parent_value*
+** опис: pass:none[боја за вредност родитељ-опције]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+cyan+`
+
+* [[option_fset.color.parent_value_selected]] *fset.color.parent_value_selected*
+** опис: pass:none[боја за вредност родитељ-опције у изабраној линији]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+lightcyan+`
+
+* [[option_fset.color.quotes]] *fset.color.quotes*
+** опис: pass:none[боја за знаке навода око стринг вредности]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+darkgray+`
+
+* [[option_fset.color.quotes_changed]] *fset.color.quotes_changed*
+** опис: pass:none[боја за знаке навода око измењених стринг вредности]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+default+`
+
+* [[option_fset.color.quotes_changed_selected]] *fset.color.quotes_changed_selected*
+** опис: pass:none[боја за знаке навода око измењених стринг вредности у изабраној линији]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+white+`
+
+* [[option_fset.color.quotes_selected]] *fset.color.quotes_selected*
+** опис: pass:none[боја за знаке навода око стринг вредности у изабраној линији]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+default+`
+
+* [[option_fset.color.section]] *fset.color.section*
+** опис: pass:none[боја за одељке]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+default+`
+
+* [[option_fset.color.section_changed]] *fset.color.section_changed*
+** опис: pass:none[боја за одељак чија је вредност измењена]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+brown+`
+
+* [[option_fset.color.section_changed_selected]] *fset.color.section_changed_selected*
+** опис: pass:none[боја за одељак чија је вредност измењена у изабраној линији]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+yellow+`
+
+* [[option_fset.color.section_selected]] *fset.color.section_selected*
+** опис: pass:none[боја за одељак у изабраној линији]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+white+`
+
+* [[option_fset.color.string_values]] *fset.color.string_values*
+** опис: pass:none[боја за стринг вредности]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+default+`
+
+* [[option_fset.color.string_values_selected]] *fset.color.string_values_selected*
+** опис: pass:none[боја за стринг вредности у изабраној линији]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+white+`
+
+* [[option_fset.color.title_count_options]] *fset.color.title_count_options*
+** опис: pass:none[боја за број опција у наслову бафера које су пронађене уз текући филтер]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+cyan+`
+
+* [[option_fset.color.title_current_option]] *fset.color.title_current_option*
+** опис: pass:none[боја за број текуће опције у наслову бафера]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+lightcyan+`
+
+* [[option_fset.color.title_filter]] *fset.color.title_filter*
+** опис: pass:none[боја за филтер у наслову бафера]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+yellow+`
+
+* [[option_fset.color.title_marked_options]] *fset.color.title_marked_options*
+** опис: pass:none[боја за број маркираних опција у наслову бафера]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+lightgreen+`
+
+* [[option_fset.color.title_sort]] *fset.color.title_sort*
+** опис: pass:none[боја за сортирање у наслову бафера]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+white+`
+
+* [[option_fset.color.type]] *fset.color.type*
+** опис: pass:none[боја за тип]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+green+`
+
+* [[option_fset.color.type_selected]] *fset.color.type_selected*
+** опис: pass:none[боја за тип у изабраној линији]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+lightgreen+`
+
+* [[option_fset.color.unmarked]] *fset.color.unmarked*
+** опис: pass:none[боја за индикатор маркера када опција није маркирана]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+default+`
+
+* [[option_fset.color.unmarked_selected]] *fset.color.unmarked_selected*
+** опис: pass:none[боја за индикатор маркера у изабраној линији када опција није маркирана]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+white+`
+
+* [[option_fset.color.value]] *fset.color.value*
+** опис: pass:none[боја за вредност]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+cyan+`
+
+* [[option_fset.color.value_changed]] *fset.color.value_changed*
+** опис: pass:none[боја за измењену вредност (различиту од подразумеване)]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+brown+`
+
+* [[option_fset.color.value_changed_selected]] *fset.color.value_changed_selected*
+** опис: pass:none[боја за измењену вредност у изабраној линији (различиту од подразумеване)]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+yellow+`
+
+* [[option_fset.color.value_selected]] *fset.color.value_selected*
+** опис: pass:none[боја за вредност у изабраној линији]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+lightcyan+`
+
+* [[option_fset.color.value_undef]] *fset.color.value_undef*
+** опис: pass:none[боја за недефинисану вредност]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+magenta+`
+
+* [[option_fset.color.value_undef_selected]] *fset.color.value_undef_selected*
+** опис: pass:none[боја за недефинисану вредност у изабраној линији]
+** тип: боја
+** вредности: име WeeChat боје (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), број terminal боје или алијас; испред боје су дозвољени атрибути (само за боју текста, не и за позадину): „*” за подебљано, „!” за обрнуто, „/” за курзив, „_” за подвучено
+** подразумевана вредност: `+lightmagenta+`
+
+* [[option_fset.format.export_help]] *fset.format.export_help*
+** опис: pass:none[формат линије помоћи која се записује пре сваке опције која се извози у фајл (напомена: садржај се израчунава, погледајте /help fset)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"# ${description2}"+`
+
+* [[option_fset.format.export_option]] *fset.format.export_option*
+** опис: pass:none[формат сваке опције која се извози у фајл (напомена: садржај се израчунава, погледајте /help fset)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"/set ${name} ${quoted_value}"+`
+
+* [[option_fset.format.export_option_null]] *fset.format.export_option_null*
+** опис: pass:none[формат сваке опција која има „null” вредност а извози се у фајл (напомена: садржај се израчунава, погледајте /help fset)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"/unset ${name}"+`
+
+* [[option_fset.format.option1]] *fset.format.option1*
+** опис: pass:none[први формат сваке линије, користи се када је вредност опције fset.look.format_number постављена на 1 (напомена: садржај се израчунава, погледајте /help fset); празан стринг значи да се користи подразумевани формат („${marked} ${name} ${type} ${value2}”), који је без израчунавања, дакле и много бржи; формати могу да се пребацују тастером ctrl+X]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+""+`
+
+* [[option_fset.format.option2]] *fset.format.option2*
+** опис: pass:none[други формат сваке линије, користи се када је вредност опције fset.look.format_number постављена на 2 (напомена: садржај се израчунава, погледајте /help fset); празан стринг значи да се користи подразумевани формат („${marked} ${name} ${type} ${value2}”), који је без израчунавања, дакле и много бржи; формати могу да се пребацују тастером ctrl+X]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"${marked} ${name} ${type} ${value2}${newline} ${empty_name} ${_default_value}${color:darkgray} -- ${min}..${max}${newline} ${empty_name} ${description}"+`
+
+* [[option_fset.look.auto_refresh]] *fset.look.auto_refresh*
+** опис: pass:none[листа опција раздвојених запетама које треба да се аутоматски освеже у fset баферу (ако је отворен); „*” значи све опције (препоручена вредност), име које почиње на „!” представља негативну вредност која спречава да се опција освежи, у именима је дозвољена употреба џокера „*” (пример: „*,!plugin.section.*”)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"*"+`
+
+* [[option_fset.look.auto_unmark]] *fset.look.auto_unmark*
+** опис: pass:none[аутоматско уклањање маркирања са свих опција након акције над маркираним опцијама или након освежавања]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+off+`
+
+* [[option_fset.look.condition_catch_set]] *fset.look.condition_catch_set*
+** опис: pass:none[услов којим се хвата /set команда и приказују резултати у fset баферу; могу да се користе следеће променљиве: ${name} (име опције које се даје /set команди), ${count} (број аргумената пронађених у аргументу команде /set ); празан стринг искључује хватање /set команде; ако је вредност „1”, fset бафер се увек користи са /set командом]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"${count} >= 1"+`
+
+* [[option_fset.look.export_help_default]] *fset.look.export_help_default*
+** опис: pass:none[подразумевано се уз сваку извезену опцију записује и помоћ (ово може да се премости аргументима „-help” и „-nohelp” за команду /fset -export)]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_fset.look.format_number]] *fset.look.format_number*
+** опис: pass:none[број формата који се користи за приказ опција; ово се динамички мења тастером ctrl-X у fset баферу]
+** тип: целобројна
+** вредности: 1 .. 2
+** подразумевана вредност: `+1+`
+
+* [[option_fset.look.marked_string]] *fset.look.marked_string*
+** опис: pass:none[стринг који се приказује када се опција маркира (како ви се извршила акција над више опција одједном)]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"*"+`
+
+* [[option_fset.look.scroll_horizontal]] *fset.look.scroll_horizontal*
+** опис: pass:none[скроловање у лево/десно у fset баферу (проценат ширине)]
+** тип: целобројна
+** вредности: 1 .. 100
+** подразумевана вредност: `+10+`
+
+* [[option_fset.look.show_plugins_desc]] *fset.look.show_plugins_desc*
+** опис: pass:none[приказивање описа опција додатака (plugins.desc.*)]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+off+`
+
+* [[option_fset.look.sort]] *fset.look.sort*
+** опис: pass:none[листа поља за сортирање опција раздвојених запетама (погледајте /help fset за листу поља); карактер „-” може да се користи испред поља чиме се обрће редослед, карактер „~” може да се употреби за поређење које не прави разлику у величини слова; пример: „-~name” за поређење које не прави разлику у величини слова и обрнуто сортирање по имену опције]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+"~name"+`
+
+* [[option_fset.look.unmarked_string]] *fset.look.unmarked_string*
+** опис: pass:none[стринг који се приказује када опција није маркирана]
+** тип: стринг
+** вредности: било који стринг
+** подразумевана вредност: `+" "+`
+
+* [[option_fset.look.use_color_value]] *fset.look.use_color_value*
+** опис: pass:none[опције у вези боја се приказују обојено]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+off+`
+
+* [[option_fset.look.use_keys]] *fset.look.use_keys*
+** опис: pass:none[употреба тастера alt+X у fset баферу за извршавање акција над опцијама; ако је искључено, дозвољен је само унос]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+on+`
+
+* [[option_fset.look.use_mute]] *fset.look.use_mute*
+** опис: pass:none[за постављање опција се користи команда /mute]
+** тип: логичка
+** вредности: on, off
+** подразумевана вредност: `+off+`
+// end::fset_options[]
diff --git a/doc/sr/includes/cmdline_options.sr.adoc b/doc/sr/includes/cmdline_options.sr.adoc
new file mode 100644
index 000000000..1f3cd44de
--- /dev/null
+++ b/doc/sr/includes/cmdline_options.sr.adoc
@@ -0,0 +1,57 @@
+// tag::standard[]
+*-a*, *--no-connect*::
+ Искључује ауто повезивање са серверима током покретања програма WeeChat.
+
+*-c*, *--colors*::
+ Приказује подразумеване боје у терминалу.
+
+*--daemon*::
+ Покреће програм WeeChat у позадини, као даемон (функционише само уз команду *weechat-headless*).
+
+*--stdout*::
+ Уместо да лог поруке уписује у фајл, приказује их на стандардни излаз (функционише само уз команду *weechat-headless*, није компатибилно са опцијом „--daemon”).
+
+*-d*, *--dir* _<путања>_::
+ Форсира један директоријум за све фајлове програма WeeChat (ако се не постоји, директоријум се креира). Може да се наведе четири директоријума, раздвојених тачка зарезима (у следећем редоследу: конфигурациони фајлови, подаци, кеш, фајлови време извршавања). Ако се ова опција не наведе, користиће се променљива окружења WEECHAT_HOME (ако није празна).
+
+*-t*, *--temp-dir*::
+ Креира привремене почетни WeeChat директоријум и брише га када се напушта програм (није компатибилно са опцијом „-d”). + програм WeeChat аутоматски изграђује име употребом следећег шаблона: „weechat_temp_XXXXXX” (где је „XXXXXX” произвољно). Креира се у првом доступном директоријуму из следеће листе: променљива окружења „TMPDIR”, „/tmp” (може бити и неки други, зависно од оперативног система), променљива окружења „HOME”, текући директоријум. + Привремени почетни директоријум има дозволе 700 (само власник може да га чита, уписује у њега и извршава га).
+
+*-h*, *--help*::
+ Приказује помоћ.
+
+*-l*, *--license*::
+ Приказује лиценцу програма WeeChat.
+
+*-p*, *--no-plugin*::
+ Искључује ауто учитавање додатака.
+
+*-P*, *--plugins* _<додаци>_::
+ Током покретања програма учитавају се само наведени додаци (погледајте /help weechat.plugin.autoload). Ако се ова опција наведе, опција weechat.plugin.autoload се не користи.
+
+*-r*, *--run-command* _<команда>_::
+ Покреће команд(у/е) након покретања програма; више команди може да се раздвоји тачка запетама, а ова опција може да се наведе и више пута.
+
+*-s*, *--no-script*::
+ Искључује ауто учитавање скрипти.
+
+*--upgrade*::
+ Ажурира програм WeeChat користећи фајлове сесије генерисане командом `/upgrade -quit`.
+
+*-v*, *--version*::
+ Приказује верзију програма WeeChat.
+
+*додатак:опција*::
+ Опције за додатак.
+// end::standard[]
+
+// tag::debug[]
+*--no-dlclose*::
+ Након уклањања додатака из меморије, функција dlclose се не позива. Ово је корисно код алата као што је Valgrind за приказ стека додатака који се уклоне из меморије.
+
+*--no-gnutls*::
+ Не позивају се init и deinit функције библиотеке GnuTLS. Ово је корисно код алата као што је Valgrind и електричне ограде, за спречавање GnuTLS меморијских грешака.
+
+*--no-gcrypt*::
+ Не позивају се init и deinit функције библиотеке Gcrypt. Ово је корисно код алата као што је Valgrind, за спречавање Gcrypt меморијских грешака.
+// end::debug[]
diff --git a/doc/sr/includes/man.sr.adoc b/doc/sr/includes/man.sr.adoc
new file mode 100644
index 000000000..61fb5fc6a
--- /dev/null
+++ b/doc/sr/includes/man.sr.adoc
@@ -0,0 +1,104 @@
+// tag::plugin_options[]
+За комплетну документацију у вези опција додатака, молимо вас да погледате документацију за додатке у https://weechat.org/doc[WeeChat корисничком упутству].
+
+irc додатком се овако повезујете са привременим сервером датим URL адресом:
+
+ irc[6][s]://[[надимак][:лозинка]@]сервер[:порт][/#канал1[,#канал2...]]
+
+Ако желите да се придружите WeeChat IRC каналу за подршку под надимком „mynick”:
+
+ irc://mynick@irc.libera.chat/#weechat
+
+IPv6 адреса може да се стави у знаке навода како ви се након адресе навео порт, на пример:
+
+ irc://mynick@[2001:db8:0:85a3::ac1f:8001]:6668/#test
+// end::plugin_options[]
+
+// tag::files[]
+$HOME/.config/weechat/weechat.conf::
+ главни конфигурациони фајл програма WeeChat
+
+$HOME/.config/weechat/plugins.conf::
+ фајл конфигурације додатака
+
+$HOME/.config/weechat/sec.conf::
+ конфигурациони фајл са обезбеђеним подацима
+
+$HOME/.config/weechat/alias.conf::
+ конфигурациони фајл за _alias_ додатак
+
+$HOME/.config/weechat/buflist.conf::
+ конфигурациони фајл за _buflist_ додатак
+
+$HOME/.config/weechat/charset.conf::
+ конфигурациони фајл за _charset_ додатак
+
+$HOME/.config/weechat/exec.conf::
+ конфигурациони фајл за _exec_ додатак
+
+$HOME/.config/weechat/fifo.conf::
+ конфигурациони фајл за _fifo_ додатак
+
+$HOME/.config/weechat/fset.conf::
+ конфигурациони фајл за _fset_ додатак
+
+$HOME/.config/weechat/guile.conf::
+ конфигурациони фајл за _guile_ додатак
+
+$HOME/.config/weechat/irc.conf::
+ конфигурациони фајл за _irc_ додатак
+
+$HOME/.config/weechat/javascript.conf::
+ конфигурациони фајл за _javascript_ додатак
+
+$HOME/.config/weechat/logger.conf::
+ конфигурациони фајл за _logger_ додатак
+
+$HOME/.config/weechat/lua.conf::
+ конфигурациони фајл за _lua_ додатак
+
+$HOME/.config/weechat/perl.conf::
+ конфигурациони фајл за _perl_ додатак
+
+$HOME/.config/weechat/php.conf::
+ конфигурациони фајл за _php_ додатак
+
+$HOME/.config/weechat/python.conf::
+ конфигурациони фајл за _python_ додатак
+
+$HOME/.config/weechat/relay.conf::
+ конфигурациони фајл за _relay_ додатак
+
+$HOME/.config/weechat/ruby.conf::
+ конфигурациони фајл за _ruby_ додатак
+
+$HOME/.config/weechat/script.conf::
+ конфигурациони фајл за _script_ додатак
+
+$HOME/.config/weechat/spell.conf::
+ конфигурациони фајл за _spell_ додатак
+
+$HOME/.config/weechat/tcl.conf::
+ конфигурациони фајл за _tcl_ додатак
+
+$HOME/.config/weechat/trigger.conf::
+ конфигурациони фајл за _trigger_ додатак
+
+$HOME/.config/weechat/xfer.conf::
+ конфигурациони фајл за _xfer_ додатак
+
+$HOME/.config/weechat/weechat.log::
+ WeeChat лог фајл
+// end::files[]
+
+// tag::copyright[]
+Програм WeeChat је написао Себастијен Елеу и људи који су дали свој допринос (комплетна листа се налази у фајлу AUTHORS.adoc).
+
+Ауторска права (C) 2003-2021 {author}
+
+WeeChat је слободни софтвер; можете га редистрибуирати и/или изменити под условима ГНУ Опште Јавне Лиценце коју је објавила Free Software Foundation; или верзије 3 Лиценце, или (по вашој жељи) било којој каснијој верзији.
+
+За више информација, молимо вас да прочитате фајл COPYING.
+
+Веб: https://weechat.org/
+// end::copyright[]
diff --git a/doc/sr/weechat-headless.1.sr.adoc b/doc/sr/weechat-headless.1.sr.adoc
new file mode 100644
index 000000000..bbc24ae7e
--- /dev/null
+++ b/doc/sr/weechat-headless.1.sr.adoc
@@ -0,0 +1,60 @@
+= weechat-headless(1)
+:doctype: manpage
+:author: Sébastien Helleu
+:email: flashcode@flashtux.org
+:lang: sr
+:man manual: WeeChat упутство
+:man source: WeeChat {revnumber}
+
+== ИМЕ
+
+weechat-headless - прошириви чет клијен (верзија без интерфејса)
+
+== СИПОПСИС
+
+[verse]
+*weechat-headless* [-a|--no-connect] [--daemon] [--stdout] [-d|--dir <путања>] [-t|--temp-dir] [-p|--no-plugin] [-P|--plugins <додаци>] [-r|--run-command <команда>] [-s|--no-script] [--upgrade] [дибаг-опција...] [додатак:опција...]
+*weechat-headless* [-c|--colors]
+*weechat-headless* [-h|--help]
+*weechat-headless* [-l|--license]
+*weechat-headless* [-v|--version]
+
+== ОПИС
+
+WeeChat (Wee Enhanced Environment for Chat) је бесплатни чет клијент, једноставан и брз, дизајниран за многе оперативне системе. Поседује могућност детаљног прилагођавања и проширивања скриптама.
+
+Команда *weechat-headless* покреће програм WeeChat у режиму без интерфејса. Може да се користи за тестове или за даемонизовање програма WeeChat опцијом „--daemon”.
+
+== ОПЦИЈЕ
+
+include::includes/cmdline_options.sr.adoc[tag=standard]
+
+== ДИБАГ ОПЦИЈЕ
+
+*УПОЗОРЕЊЕ:* ове опције служе за потребе дибагинга, *НЕ КОРИСТИТЕ У ПРОДУКЦИЈИ!*
+
+include::includes/cmdline_options.sr.adoc[tag=debug]
+
+== ОПЦИЈЕ ДОДАТАКА
+
+include::includes/man.sr.adoc[tag=plugin_options]
+
+== ФАЈЛОВИ
+
+include::includes/man.sr.adoc[tag=files]
+
+== ПОГЛЕДАЈТЕ И
+
+*weechat*(1)
+
+== АУТОРИ
+
+Ову man страницу је написао {author}.
+
+== АУТОРСКА ПРАВА
+
+include::includes/man.sr.adoc[tag=copyright]
+
+== ПОДРШКА / ПРИЈАВА БАГОВА
+
+За помоћ или пријаву бага: https://weechat.org/about/support
diff --git a/doc/sr/weechat.1.sr.adoc b/doc/sr/weechat.1.sr.adoc
new file mode 100644
index 000000000..2cf6e3cec
--- /dev/null
+++ b/doc/sr/weechat.1.sr.adoc
@@ -0,0 +1,58 @@
+= weechat(1)
+:doctype: manpage
+:author: Sébastien Helleu
+:email: flashcode@flashtux.org
+:lang: sr
+:man manual: WeeChat упутство
+:man source: WeeChat {revnumber}
+
+== ИМЕ
+
+weechat - прошириви чет клијент
+
+== СИПОПСИС
+
+[verse]
+*weechat* [-a|--no-connect] [-d|--dir <путања>] [-t|--temp-dir] [-p|--no-plugin] [-P|--plugins <додаци>] [-r|--run-command <команда>] [-s|--no-script] [--upgrade] [дибаг-опција...] [додатак:опција...]
+*weechat* [-c|--colors]
+*weechat* [-h|--help]
+*weechat* [-l|--license]
+*weechat* [-v|--version]
+
+== ОПИС
+
+WeeChat (Wee Enhanced Environment for Chat) је бесплатни чет клијент, једноставан и брз, дизајниран за многе оперативне системе. Поседује могућност детаљног прилагођавања и проширивања скриптама.
+
+== ОПЦИЈЕ
+
+include::includes/cmdline_options.sr.adoc[tag=standard]
+
+== ДИБАГ ОПЦИЈЕ
+
+*УПОЗОРЕЊЕ:* ове опције служе за потребе дибагинга, *НЕ КОРИСТИТЕ У ПРОДУКЦИЈИ!*
+
+include::includes/cmdline_options.sr.adoc[tag=debug]
+
+== ОПЦИЈЕ ДОДАТАКА
+
+include::includes/man.sr.adoc[tag=plugin_options]
+
+== ФАЈЛОВИ
+
+include::includes/man.sr.adoc[tag=files]
+
+== ПОГЛЕДАЈТЕ И
+
+*weechat-headless*(1)
+
+== АУТОРИ
+
+Ову man страницу је написао {author}.
+
+== АУТОРСКА ПРАВА
+
+include::includes/man.sr.adoc[tag=copyright]
+
+== ПОДРШКА / ПРИЈАВА БАГОВА
+
+За помоћ или пријаву бага: https://weechat.org/about/support
diff --git a/doc/sr/weechat_dev.sr.adoc b/doc/sr/weechat_dev.sr.adoc
new file mode 100644
index 000000000..988968ea5
--- /dev/null
+++ b/doc/sr/weechat_dev.sr.adoc
@@ -0,0 +1,1164 @@
+= WeeChat водич за програмере
+:author: Sébastien Helleu
+:email: flashcode@flashtux.org
+:lang: sr
+:toc: left
+:toclevels: 3
+:toc-title: Садржај
+:sectnums:
+:docinfo1:
+
+
+Ово упутство описује WeeChat чет клијент и део је програма WeeChat.
+
+Последња верзија овог документа може да се нађе на следећој страници: https://weechat.org/doc
+
+
+[[introduction]]
+== Увод
+
+WeeChat (Wee Enhanced Environment for Chat) је бесплатни чет клијент, једноставан и брз, дизајниран за многе оперативне системе.
+
+Ово упутство описује интерно функционисање програма WeeChat:
+
+* репозиторијуми
+* правила за писање кода
+* интерне ствари језгра
+* интерне ствари додатака
+* како дати допринос програму WeeChat.
+
+[[repositories]]
+== Репозиторијуми
+
+WeeChat репозиторијуми се налазе на GitHub организацији „weechat”: https://github.com/weechat
+
+Листа репозиторијума:
+
+weechat::
+ репозиторијум језгра са изворним кодом и документацијом
+
+scripts::
+ _званичне_ скрипте које су предате на weechat.org
+
+weechat.org::
+ извор WeeChat веб сајта: https://weechat.org/
+
+weercd::
+ IRC сервер за тестирање
+
+qweechat::
+ Qt даљински ГКИ за WeeChat.
+
+Ово упутство документује само _weechat_ репозиторијум.
+
+[[overview]]
+=== Преглед
+
+Ово су главни WeeChat директоријуми:
+
+[width="100%", cols="2m,3", options="header"]
+|===
+| Директоријум | Опис
+| src/ | Корен извора.
+|    core/ | Функције језгра: улазна тачка, интерне структуре.
+|       hook/ | Функције кука.
+|    gui/ | Функције за бафере, прозоре, ... (користе их сви интерфејси).
+|       curses/ | Curses интерфејс.
+|          headless/ | Режим без интерфејса.
+|          normal/ | Curses интерфејс.
+|    plugins/ | API за додатке и скриптовање.
+|       alias/ | Alias додатак.
+|       buflist/ | Buflist додатак.
+|       charset/ | Charset додатак.
+|       exec/ | Exec додатак.
+|       fifo/ | Fifo додатак (FIFO пајп се користи за удаљено слање команди програму WeeChat).
+|       fset/ | Fset (Fast Set) додатак.
+|       guile/ | API за Guile (scheme) скриптовање.
+|       irc/ | IRC (Internet Relay Chat) додатак.
+|       javascript/ | API за JavaScript скриптовање.
+|       logger/ | Logger додатак (уписивање порука које се приказују у фајл).
+|       lua/ | API за Lua скриптовање.
+|       perl/ | API за Perl скриптовање.
+|       php/ | API за PHP скриптовање.
+|       python/ | API за Python скриптовање.
+|       relay/ | Relay plugin (irc прокси + релеј за удаљене интерфејсе).
+|       ruby/ | API за Ruby скриптовање.
+|       script/ | Скрипт менаџер.
+|       spell/ | Spell додатак.
+|       tcl/ | API за Tcl скриптовање.
+|       trigger/ | Trigger додатак.
+|       xfer/ | Xfer додатак (IRC DCC фајл/разговор).
+| tests/ | Тестови.
+|    scripts/ | Тестови за API скриптовања.
+|       python/ | Python скрипте за генерисање и покретање тестова за API скриптовања.
+|    unit/ | Unit тестови.
+|       core/ | Unit тестови за функције језгра.
+|       gui/ | Unit тестови за функције интерфејса.
+|       plugins/ | Unit тестови за додатке.
+|          irc/ | Unit тестови за IRC додатак.
+| doc/ | Документација.
+| po/ | Фајлови превода (gettext).
+| debian/ | Debian паковање.
+|===
+
+[[sources]]
+=== Извори
+
+[[sources_core]]
+==== Језгро
+
+WeeChat „језгро” се налази у следећим директоријумима:
+
+* _src/core/_: функције језгра (за манипулацију подацима)
+* _src/gui/_: функције у вези интерфејса (бафери, прозори, ...)
+
+[width="100%", cols="2m,3", options="header"]
+|===
+| Путања/фајл | Опис
+| core/ | Функције језгра: тачка улаза, интерне структуре.
+|    wee-arraylist.c | Листе низова.
+|    wee-backtrace.c | Испис трага након краха.
+|    wee-calc.c | Израчунавање резултата израза.
+|    wee-command.c | WeeChat команде језгра.
+|    wee-completion.c | Подразумевана довршавања.
+|    wee-config-file.c | Управљање конфигурационим фајловима.
+|    wee-config.c | Конфигурационе опције за WeeChat језгро (фајл weechat.conf).
+|    wee-crypto.c | Криптографске функције.
+|    wee-debug.c | Неке дибаг функције.
+|    wee-dir.c | Функције директоријума/фајла.
+|    wee-eval.c | Израчунавање израза са референцама на интерне променљиве.
+|    wee-hashtable.c | Хеш табеле.
+|    wee-hdata.c | Hdata (директни приступ подацима употребом хеш табела).
+|    wee-hook.c | Куке.
+|    wee-infolist.c | Инфолисте (листе са подацима објеката).
+|    wee-input.c | Унос команди/текста.
+|    wee-list.c | Сортиране листе.
+|    wee-log.c | Упис у WeeChat лог фајл (weechat.log).
+|    wee-network.c | Мрежне функције (повезивање са серверима/проксијима).
+|    wee-proxy.c | Управљање проксијима.
+|    wee-secure.c | Функције обезбеђених података.
+|    wee-secure-buffer.c | Бафер обезбеђених података.
+|    wee-secure-config.c | Опције обезбеђених података (фајл sec.conf).
+|    wee-string.c | Функције над стринговима.
+|    wee-upgrade-file.c | Интерни систем ажурирања.
+|    wee-upgrade.c | Ажурирање за WeeChat језгро (бафери, линије, историја, ...).
+|    wee-url.c | URL трансфер (помоћу libcurl).
+|    wee-utf8.c | UTF-8 фунцкије.
+|    wee-util.c | Неке друге функције.
+|    wee-version.c | Функције за WeeChat верзију.
+|    weechat.c | Основне функције: опције командне линије, покретање.
+|    hook/ | Функције кука.
+|       wee-hook-command-run.c | Кука "command_run".
+|       wee-hook-command.c | Кука "command".
+|       wee-hook-completion.c | Кука "completion".
+|       wee-hook-config.c | Кука "config".
+|       wee-hook-connect.c | Кука "connect".
+|       wee-hook-fd.c | Кука "fd".
+|       wee-hook-focus.c | Кука "focus".
+|       wee-hook-hdata.c | Кука "hdata".
+|       wee-hook-hsignal.c | Кука "hsignal".
+|       wee-hook-info-hashtable.c | Кука "info_hashtable".
+|       wee-hook-info.c | Кука "info".
+|       wee-hook-infolist.c | Кука "infolist".
+|       wee-hook-line.c | Кука "line".
+|       wee-hook-modifier.c | Кука "modifier".
+|       wee-hook-print.c | Кука "print".
+|       wee-hook-process.c | Кука "process".
+|       wee-hook-signal.c | Кука "signal".
+|       wee-hook-timer.c | Кука "timer".
+| gui/ | Функције за бафере, прозоре, ... (користе их сви интерфејси).
+|    gui-bar-item.c | Ставке трака.
+|    gui-bar-window.c | Прозори трака.
+|    gui-bar.c | Траке.
+|    gui-buffer.c | Бафери.
+|    gui-chat.c | Функције разговора (призаз поруке, ...).
+|    gui-color.c | Функције боја.
+|    gui-completion.c | Довршавање у комадној линији.
+|    gui-cursor.c | Курсорски режим (слобосно померање курсора).
+|    gui-filter.c | Филтери.
+|    gui-focus.c | Функције у вези фокуса (за курсорски режими миша).
+|    gui-history.c | Команде/текст сачуван у баферима.
+|    gui-hotlist.c | Управљање врућом листом (листа бафера у којима има активности).
+|    gui-input.c | Функције уноса (трака уноса).
+|    gui-key.c | Функције тастатуре.
+|    gui-layout.c | Распоред.
+|    gui-line.c | Линије у баферуLines in buffers.
+|    gui-mouse.c | Миш.
+|    gui-nick.c | Функције надимака.
+|    gui-nicklist.c | Листа надимака у баферима.
+|    gui-window.c | Прозори.
+|    curses/ | Curses интерфејс.
+|       gui-curses-bar-window.c | Приказ у прозорима трака.
+|       gui-curses-chat.c | Приказ у простору разговора (поруке).
+|       gui-curses-color.c | Функције боја.
+|       gui-curses-key.c | Функције тастатуре (подраз. тастери, читање уноса).
+|       gui-curses-main.c | WeeChat главна петља (чекање на догађаје тастатуре/мреже).
+|       gui-curses-mouse.c | Миш.
+|       gui-curses-term.c | Функције у вези терминала.
+|       gui-curses-window.c | Прозори.
+|       headless/ | Режим без интерфејса.
+|          main.c | Тачка улаза за режим без интерфејса.
+|          ncurses-fake.c | Лажна ncurses библиотека.
+|       normal/ | Curses интерфејс.
+|          main.c | Тачка улаза за Curses интерфејс.
+|===
+
+[[sources_plugins]]
+==== Додаци
+
+[width="100%", cols="2m,3", options="header"]
+|===
+| Путања/фајл | Опис
+| plugins/ | Корен додатака.
+|    plugin.c | Управљање додацима (учитавање/уклањање динамичких C библиотека).
+|    plugin-api.c | Додатне функције за API додатака (омотач око WeeChat функција језгра).
+|    plugin-api-info.c | Додатне info/infolist фунцкије за API додатака.
+|    plugin-config.c | Опције конфигурације додатака (фајл plugins.conf).
+|    plugin-script.c | Опште функције које користе скрипт додаци.
+|    plugin-script-api.c | Скрипт API функције: омотачи око неких функција API додатака.
+|    plugin-script-config.c | Опције конфигурације скрипт додатака (фајлови python.conf, perl.conf, ...).
+|    weechat-plugin.h | Заглавље које треба да се дистрибуира уз WeeChat додатке, како би могли да се компајлирају.
+|    alias/ | Alias додатак.
+|       alias.c | Главне алијас функције.
+|       alias-command.c | Алијас команде.
+|       alias-completion.c | Алијас довршавање.
+|       alias-config.c | Алијас опције конфигурације (фајл alias.conf).
+|       alias-info.c | Алијас info/infolists/hdata.
+|    spell/ | Додатак за проверу правописа.
+|       spell.c | Главне функције провере правописа.
+|       spell-bar-item.c | Провера правописа ставке траке.
+|       spell-command.c | Провера правописа команде.
+|       spell-completion.c | Провера правописа довршавања.
+|       spell-config.c | Провера правописа опције конфиг (фајл spell.conf).
+|       spell-info.c | Провера правописа info/infolists/hdata.
+|       spell-speller.c | Управљање библиотекама за проверу правописа.
+|    buflist/ | Buflist додатак.
+|       buflist.c | Главне buflist функције.
+|       buflist-bar-item.c | Buflist ставке траке.
+|       buflist-command.c | Buflist команде.
+|       buflist-config.c | Buflist опције кофиг (фајл buflist.conf).
+|       buflist-info.c | Buflist info/infolists/hdata.
+|       buflist-mouse.c | Buflist акције мишем.
+|    charset/ | Charset додатак.
+|       charset.c | Charset функције.
+|    exec/ | Exec додатак.
+|       exec.c | Флавне exec функције.
+|       exec-buffer.c | Exec бафер.
+|       exec-command.c | Exec команде.
+|       exec-completion.c | Exec довршавања.
+|       exec-config.c | Exec опције конфиг (фајл exec.conf).
+|    fifo/ | Fifo додатак.
+|       fifo.c | Главне fifo функције.
+|       fifo-command.c | Fifo команде.
+|       fifo-config.c | Fifo опције конфиг (фајл fifo.conf).
+|       fifo-info.c | Fifo info/infolists/hdata.
+|    fset/ | Fset додатак.
+|       fset.c | Главне fset функције.
+|       fset-bar-item.c | Fset ставке траке.
+|       fset-buffer.c | Fset бафер.
+|       fset-command.c | Fset команде.
+|       fset-completion.c | Fset довршавања.
+|       fset-config.c | Fset опције конфиг (фајл fset.conf).
+|       fset-info.c | Fset info/infolists/hdata.
+|       fset-mouse.c | Fset акције мишем.
+|       fset-option.c | Fset управљање опцијама.
+|    guile/ | Guile (scheme) додатак.
+|       weechat-guile.c | Главне guile функције (учитавањ/уклањање скрипти, извршавање guile кода).
+|       weechat-guile-api.c | API функције guile скриптовања.
+|    irc/ | IRC (Internet Relay Chat) додатак.
+|       irc.c | Основне IRC функције.
+|       irc-bar-item.c | IRC ставке траке.
+|       irc-buffer.c | IRC бафери.
+|       irc-channel.c | IRC канали.
+|       irc-color.c | IRC боје.
+|       irc-command.c | IRC команде.
+|       irc-completion.c | IRC довршавања.
+|       irc-config.c | IRC опције конфиг (фајл irc.conf).
+|       irc-ctcp.c | IRC CTCP.
+|       irc-debug.c | IRC дибаг функције.
+|       irc-ignore.c | IRC Ignore.
+|       irc-info.c | IRC info/infolists/hdata.
+|       irc-input.c | Унос команди/текста.
+|       irc-message.c | Функције за манипулисање IRC порукама.
+|       irc-mode.c | Функције у вези режима канала/надимка.
+|       irc-modelist.c | Листе режима IRC канала (+b, +e, +I, ...).
+|       irc-msgbuffer.c | Циљни бафер за IRC поруке.
+|       irc-nick.c | IRC надимци.
+|       irc-notify.c | IRC листе за обавештавање.
+|       irc-protocol.c | IRC протокол (RFCs 1459/2810/2811/2812/2813).
+|       irc-raw.c | IRC сирови бафер.
+|       irc-redirect.c | Преусмеравање излаза IRC команде.
+|       irc-sasl.c | SASL аутентификација са IRC сервером.
+|       irc-server.c | У/И комуникација са IRC сервером.
+|       irc-upgrade.c | Чување/обнављање IRC података када се ажурира програм WeeChat.
+|    javascript/ | JavaScript додатак.
+|       weechat-js.cpp | Главне JavaScript функције (учитавање/уклањање скрипти, извршавање JavaScript кода).
+|       weechat-js-api.cpp | API функције JavaScript скриптовања.
+|       weechat-js-v8.cpp | JavaScript v8 функције.
+|    logger/ | Logger додатак.
+|       logger.c | Главне logger функције.
+|       logger-backlog.c | Logger backlog функције.
+|       logger-buffer.c | Logger управљање листом бафера.
+|       logger-command.c | Logger команде.
+|       logger-config.c | Logger опције конфиг (фајл logger.conf).
+|       logger-info.c | Logger info/infolists/hdata.
+|       logger-tail.c | Функције за враћање последњих линија фајла.
+|    lua/ | Lua додатак.
+|       weechat-lua.c | Главне lua функције (учитавање/уклањање скрипти, извршавање lua кода).
+|       weechat-lua-api.c | API функције Lua скриптовања.
+|    perl/ | Perl додатак.
+|       weechat-perl.c | Главне perl функције (учитавање/уклањање скрипти, извршавање perl кода).
+|       weechat-perl-api.c | API функције Perl скриптовања.
+|    php/ | PHP додатак.
+|       weechat-php.c | Главне PHP функције (учитавање/уклањање скрипти, извршавање PHP кода).
+|       weechat-php-api.c | API функције PHP скриптовања.
+|    python/ | Python додатак.
+|       weechat-python.c | Главне python функције (учитавање/уклањање скрипти,извршавање python кода).
+|       weechat-python-api.c | API функције Python скриптовања.
+|    relay/ | Релеј додатак (IRC прокси и релеј за удаљене интерфејсе).
+|       relay.c | Главне релеј функције.
+|       relay-auth.c | Аутентификација клијената.
+|       relay-buffer.c | Релеј бафер.
+|       relay-client.c | Клијенти релеја.
+|       relay-command.c | Релеј команде.
+|       relay-completion.c | Релеј довршавања.
+|       relay-config.c | Релеј опције конфиг (фајл relay.conf).
+|       relay-info.c | Релеј info/infolists/hdata.
+|       relay-network.c | Мрежне функције за релеј.
+|       relay-raw.c | Релеј сирови бафер.
+|       relay-server.c | Релеј сервер.
+|       relay-upgrade.c | Save/restore of relay data when upgrading WeeChat.
+|       relay-websocket.c | WebSocket сервер функције (RFC 6455).
+|       irc/ | IRC прокси.
+|          relay-irc.c | Главне IRC прокси функције.
+|       weechat/ | Релеј за удаљене интерфејсе.
+|          relay-weechat.c | Релеј за удаљене интерфејсе (главне функције).
+|          relay-weechat-msg.c | Слање бинарних порука клијентима.
+|          relay-weechat-nicklist.c | Функције листе надимака.
+|          relay-weechat-protocol.c | Читање команди од клијената.
+|    ruby/ | Ruby додатак.
+|       weechat-ruby.c | Главне ruby функције (учитавање/уклањање скрипти, извршавање ruby кода).
+|       weechat-ruby-api.c | API функције Ruby скриптовања.
+|    script/ | Управљач скриптама.
+|       script.c | Главне функције за управљача скриптама.
+|       script-action.c | Акције над скриптама (учитавање/уклањање, инсталација/деинсталација, ...).
+|       script-buffer.c | Бафер за управљача скриптама.
+|       script-command.c | Команде за управљача скриптама.
+|       script-completion.c | Довршавања за управљача скриптама.
+|       script-config.c | Опције конфигурације за управљача скриптама (фајл script.conf).
+|       script-info.c | Управљач скриптама info/infolists/hdata.
+|       script-mouse.c | Скрипт акције мишем.
+|       script-repo.c | Преузимање и читање фајла репозиторијума.
+|    tcl/ | Tcl додатак.
+|       weechat-tcl.c | Главне tcl функције (учитавање/уклањање скрипти, извршавање tcl кода).
+|       weechat-tcl-api.c | API функције Tcl скриптовања.
+|    trigger/ | Окидач додатак.
+|       trigger.c | Главне функције окидача.
+|       trigger-buffer.c | Окидач бафер.
+|       trigger-callback.c | Окидач функције повратног позива.
+|       trigger-command.c | Окидач команде.
+|       trigger-completion.c | Окидач довршавања.
+|       trigger-config.c | Окидач опције конфиг (фајл trigger.conf).
+|    xfer/ | Xfer додатак (IRC DCC фајл/разговор).
+|       xfer.c | Главне xfer функције.
+|       xfer-buffer.c | Xfer бафер.
+|       xfer-chat.c | DCC разговор.
+|       xfer-command.c | Xfer команде.
+|       xfer-completion.c | Xfer довршавања.
+|       xfer-config.c | Xfer опције конфиг (фајлxfer.conf).
+|       xfer-dcc.c | DCC пренос фајла.
+|       xfer-file.c | Фајл функције за xfer.
+|       xfer-info.c | Xfer info/infolists/hdata.
+|       xfer-network.c | Мрежне функције за xfer.
+|       xfer-upgrade.c | Чување/обнављање xfer података када се програм WeeChat ажурира.
+|===
+
+[[sources_tests]]
+==== Тестови
+
+[width="100%", cols="2m,3", options="header"]
+|===
+| Путања/фајл | Опис
+| tests/ | Корен тестова.
+|    tests.cpp | Програм који се користи за извршавање свих тестова.
+|    scripts/ | Корен тестова за API скриптовања.
+|       test-scripts.cpp | Програм који се користи за извршавање тестова API скриптовања.
+|       python/ | Python скрипте које генеришу и покрећу тестове API скриптовања.
+|          testapigen.py | Python скрипта која генерише скрипте на свим језицима за тестирање API скриптовања.
+|          testapi.py | Python скрипта са тестовима API скриптовања, користи је скрипта testapigen.py.
+|          unparse.py | Конверзија Python кода у остале језике, користи је скрипта testapigen.py.
+|    unit/ | Корен unit тестова.
+|       test-plugins.cpp | Тестови: plugins.
+|       core/ | Корен unit тестова језгра.
+|          test-core-arraylist.cpp | Тестови: arraylists.
+|          test-core-calc.cpp | Тестови: калкулација израза.
+|          test-core-crypto.cpp | Тестови: криптографске функције.
+|          test-core-dir.cpp | Тестови: функције директоријума/фајла.
+|          test-core-eval.cpp | Тестови: израчунавање израза.
+|          test-core-hashtble.cpp | Тестови: hashtables.
+|          test-core-hdata.cpp | Тестови: hdata.
+|          test-core-hook.cpp | Тестови: куке.
+|          test-core-infolist.cpp | Тестови: infolists.
+|          test-core-list.cpp | Тестови: листе.
+|          test-core-network.cpp | Тестови: мрежне функције.
+|          test-core-secure.cpp | Тестови: обезбеђени подаци.
+|          test-core-signal.cpp | Тестови: сигнали.
+|          test-core-string.cpp | Тестови: стрингови.
+|          test-core-url.cpp | Тестови: URL адресе.
+|          test-core-utf8.cpp | Тестови: UTF-8.
+|          test-core-util.cpp | Тестови: помоћне функције.
+|       gui/ | Корен unit тестова интерфејса.
+|          test-gui-color.cpp | Тестови: боје.
+|          test-gui-line.cpp | Тестови: линије.
+|          test-gui-nick.cpp | Тестови: надимци.
+|       plugins/ | Корен unit тестова додатака.
+|          irc/ | Корен unit тестова IRC додатка.
+|             test-irc-channel.cpp | Тестови: IRC канали.
+|             test-irc-color.cpp | Тестови: IRC боје.
+|             test-irc-config.cpp | Тестови: IRC конфигурација.
+|             test-irc-ignore.cpp | Тестови: IRC игнорисања.
+|             test-irc-message.cpp | Тестови: IRC поруке.
+|             test-irc-mode.cpp | Тестови: IRC режими.
+|             test-irc-nick.cpp | Тестови: IRC надимци.
+|             test-irc-protocol.cpp | Тестови: IRC протокол.
+|             test-irc-server.cpp | Тестови: IRC сервер.
+|          trigger/ | Корен unit тестова за окидач додатак.
+|             test-trigger.cpp | Тестови: окидачи.
+|          relay/ | Корен unit тестова за Релеј додатак.
+|             test-relay-auth.cpp | Тестови: аутентификација клијената.
+
+|===
+
+[[documentation_translations]]
+=== Документација / преводи
+
+Фајлови документације:
+
+[width="100%", cols="2m,3", options="header"]
+|===
+| Путања/фајл | Опис
+| doc/ | Документација.
+|    docinfo.html | Asciidoctor стил.
+|    docgen.py | Python скрипта која изграђује ауто-генерисане фајлу у директоријуму _includes/_ (погледајте ниже).
+|    XX/ | Документација за језик XX (језици: en, fr, de, it, ...).
+|       weechat.1.XX.adoc | Man страница(`man weechat`).
+|       weechat_dev.XX.adoc | link:weechat_dev.sr.html[Водич за програмере] (овај документ).
+|       weechat_faq.XX.adoc | link:weechat_faq.sr.html[ЧПП].
+|       weechat_plugin_api.XX.adoc | link:weechat_plugin_api.sr.html[Референца за API додатака].
+|       weechat_quickstart.XX.adoc | link:weechat_quickstart.sr.html[Водич за брзи почетак].
+|       weechat_relay_protocol.XX.adoc | link:weechat_relay_protocol.sr.html[Релеј протокол] (за удаљене интерфејсе).
+|       weechat_scripting.XX.adoc | link:weechat_scripting.sr.html[Водич за скриптовање].
+|       weechat_tester.XX.adoc | link:weechat_tester.sr.html[Водич за тестере].
+|       weechat_user.XX.adoc | link:weechat_user.sr.html[Корисничко упутство].
+|       includes/ | Фајлови укључени у документацију.
+|          autogen_api_completions.XX.adoc | Ауто-генерисани фајл за Референцу API додатака: довршавања (*НИКАДА* не ажурирајте ручно!).
+|          autogen_api_hdata.XX.adoc | Ауто-генерисани фајл за Референцу API додатака: hdata (*НИКАДА* не ажурирајте ручно!).
+|          autogen_api_infolists.XX.adoc | Ауто-генерисани фајл за Референцу API додатака: infolists (*НИКАДА* не ажурирајте ручно!).
+|          autogen_api_infos.XX.adoc | Ауто-генерисани фајл за Референцу API додатака: infos (*НИКАДА* не ажурирајте ручно!).
+|          autogen_api_infos_hashtable.XX.adoc | Ауто-генерисани фајл за Референцу API додатака: infos hashtable (*НИКАДА* не ажурирајте ручно!).
+|          autogen_api_plugins_priority.XX.adoc | Ауто-генерисани фајл за Референцу API додатака: приоритет додатака (*НИКАДА* не ажурирајте ручно!).
+|          autogen_api_url_options.XX.adoc | Ауто-генерисани фајл за Референцу API додатака: URL опције (*НИКАДА* не ажурирајте ручно!).
+|          autogen_user_commands.XX.adoc | Ауто-генерисани фајл за Корисничко упутство: команде (*НИКАДА* не ажурирајте ручно!).
+|          autogen_user_default_aliases.XX.adoc | Ауто-генерисани фајл за Корисничко упутство: подразумевани алијаси (*НИКАДА* не ажурирајте ручно!).
+|          autogen_user_irc_colors.XX.adoc | Ауто-генерисани фајл за Корисничко упутство: IRC боје (*НИКАДА* не ажурирајте ручно!).
+|          autogen_user_options.XX.adoc | Ауто-генерисани фајл за Корисничко упутство: опције конфигурације (*НИКАДА* не ажурирајте ручно!).
+|          cmdline_options.XX.adoc | Опције командне линије (фајл се укључује у man странице и корисничко упутство).
+|          man.XX.adoc | Део man страница: опције додатака, фајлови и ауторска права.
+|===
+
+Преводи програма WeeChat и додатака се раде помоћу програма gettext, фајлови се налазе у _po/_ директоријуму:
+
+[width="100%", cols="2m,3", options="header"]
+|===
+| Путања/фајл | Опис
+| po/ | Фајлови превода (gettext).
+|    XX.po | Преводи за језик XX (fr, de, it, ...), базни језик је енглески.
+|    weechat.pot | Шаблон за преводе (аутоматски изграђен).
+|===
+
+[[coding_rules]]
+== Правила за писање кода
+
+[[coding_general_rules]]
+=== Општа правила
+
+* Ваши коментари, имена променљивих, ... у изворном коду морају бити написани *само* на енглеском језику (није дозвољена употреба ниједног другог језика).
+* Употребите заглавље ауторских права у сваком новом изворном фајлу са:
+** кратким описом фајла (једна линија)
+** датумом,
+** именом,
+** имејл адресом,
+** лиценцом.
+
+Пример у језику C:
+
+[source, C]
+----
+/*
+ * weechat.c - core functions for WeeChat
+ *
+ * Copyright (C) 2021 Your Name <your@email.com>
+ *
+ * This file is part of WeeChat, the extensible chat client.
+ *
+ * WeeChat is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * WeeChat is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with WeeChat. If not, see <https://www.gnu.org/licenses/>.
+ */
+----
+
+[[coding_c_style]]
+=== C стил
+
+Када пишете C кôд, *морате* да се придржавате неких основних правила:
+
+* Користите 4 размака за увлачење редова. Не употребљавајте табове, они су зло.
+* Покушајте да не прекорачите 80 карактера по линији, осим ако је то неопходно за читљивост.
+* Користите коментаре `+/* коментар */+` (а не коментаре у C99 стилу као што је `+// коментар+`).
+* Испред сваке функције додајте коментар који објашњава шта она ради (увек користите вишелинијски коментар, чак и ако је опис кратак).
+
+Пример:
+
+[source, C]
+----
+/*
+ * Checks if a string with boolean value is valid.
+ *
+ * Returns:
+ * 1: boolean value is valid
+ * 0: boolean value is NOT valid
+ */
+
+int
+foo ()
+{
+ int i;
+
+ /* one line comment */
+ i = 1;
+
+ /*
+ * multi-line comment: this is a very long description about next block
+ * of code
+ */
+ i = 2;
+ printf ("%d\n", i);
+}
+----
+
+* Користите експлицитна имена променљивих, на пример „nicks_count” уместо „n” или „nc”. Изузетак: у `for` петљама су променљиве као што су „i” или „n” ОК.
+* Након декларације, у телу функције иницијализујте локалне променљиве, пример:
+
+[source, C]
+----
+void
+foo ()
+{
+ int nick_count, buffer_count;
+
+ nick_count = 0;
+ buffer_count = 1;
+ /* ... */
+}
+----
+
+* Употребите заграде да експлицитно покажете како се израз израчунава, чак и када нису неопходне, на пример: write `+x + (y * z)+` уместо `+x + y * z+`.
+* Постављајте витичасте заграде `+{ }+` саме у линије, и увуците их за број размака који се користио у линији изнад отворене витичасте заграде (`if` у примеру):
+
+[source, C]
+----
+if (nicks_count == 1)
+{
+ /* нешто */
+}
+----
+
+* За раздвајање више различитих блокова унутар функција, употребите празне линије, а ако је могуће, додајте и коментар за сваку. Овако:
+
+[source, C]
+----
+/*
+ * Sends a message from out queue.
+ */
+
+void
+irc_server_outqueue_send (struct t_irc_server *server)
+{
+ /* ... */
+
+ /* send signal with command that will be sent to server */
+ irc_server_send_signal (server, "irc_out",
+ server->outqueue[priority]->command,
+ server->outqueue[priority]->message_after_mod,
+ NULL);
+ tags_to_send = irc_server_get_tags_to_send (server->outqueue[priority]->tags);
+ irc_server_send_signal (server, "irc_outtags",
+ server->outqueue[priority]->command,
+ server->outqueue[priority]->message_after_mod,
+ (tags_to_send) ? tags_to_send : "");
+ if (tags_to_send)
+ free (tags_to_send);
+
+ /* send command */
+ irc_server_send (server, server->outqueue[priority]->message_after_mod,
+ strlen (server->outqueue[priority]->message_after_mod));
+ server->last_user_message = time_now;
+
+ /* start redirection if redirect is set */
+ if (server->outqueue[priority]->redirect)
+ {
+ irc_redirect_init_command (server->outqueue[priority]->redirect,
+ server->outqueue[priority]->message_after_mod);
+ }
+
+ /* ... */
+}
+----
+
+* Увлачите `if` услове у употребљавајте заграде око услова са оператором (није потребно само за једну логичку вредност). Овако:
+
+[source, C]
+----
+if (нешто)
+{
+ /* нешто */
+}
+else
+{
+ /* нешто друго */
+}
+
+if (my_boolean1 && my_boolean2 && (i == 10)
+ && ((buffer1 != buffer2) || (window1 != window2)))
+{
+ /* нешто */
+}
+else
+{
+ /* нешто друго */
+}
+----
+
+* Увлачите `switch` наредбе на следећи начин:
+
+[source, C]
+----
+switch (string[0])
+{
+ case 'A': /* first case */
+ foo ("abc", "def");
+ break;
+ case 'B': /* second case */
+ bar (1, 2, 3);
+ break;
+ default: /* other cases */
+ baz ();
+ break;
+}
+----
+
+* Користите `typedef` за прототипе функција, али не и за структуре:
+
+[source, C]
+----
+typedef int (t_hook_callback_fd)(void *data, int fd);
+
+struct t_hook_fd
+{
+ t_hook_callback_fd *callback; /* fd callback */
+ int fd; /* socket or file descriptor */
+ int flags; /* fd flags (read,write,..) */
+ int error; /* contains errno if error occurred */
+ /* with fd */
+};
+
+/* ... */
+
+struct t_hook_fd *new_hook_fd;
+
+new_hook_fd = malloc (sizeof (*new_hook_fd));
+----
+
+* Ако користите Emacs као текст едитор, за исправно увлачење можете у свом _~/.emacs.el_ употребити Lisp кôд који следи:
+
+[source, lisp]
+----
+(add-hook 'c-mode-common-hook
+ '(lambda ()
+ (c-toggle-hungry-state t)
+ (c-set-style "k&r")
+ (setq c-basic-offset 4)
+ (c-tab-always-indent t)
+ (c-set-offset 'case-label '+)))
+----
+
+[[coding_python_style]]
+=== Python стил
+
+Погледајте https://www.python.org/dev/peps/pep-0008/
+
+[[core_internals]]
+== Интерне ствари језгра
+
+[[naming_convention]]
+=== Конвенција именовања
+
+[[naming_convention_files]]
+==== Фајлови
+
+Имена фајлова се састоје од слова и цртица, у формату: _xxx-yyyyy.[ch]_, где је _xxx_ директоријум/компонента (може бити и скраћеница), а _yyyyy_ је име за фајл.
+
+Главни фајл директоријума може имати исто име као и директоријум, на пример _irc.c_ у irc додатку.
+
+Примери:
+
+[width="100%", cols="2m,3", options="header"]
+|===
+| Директоријум | Фајлови
+| src/core/ | weechat.c, wee-backtrace.c, wee-command.c, ...
+| src/gui/ | gui-bar.c, gui-bar-item.c, gui-bar-window.c, ...
+| src/gui/curses/ | gui-curses-bar.c, gui-curses-bar-window.c, gui-curses-chat.c, ...
+| src/plugins/ | plugin.c, plugin-api.c, plugin-api-info.c, plugin-config.c, plugin-script.c, ...
+| src/plugins/irc/ | irc.c, irc-bar-item.c, irc-buffer.c, ...
+| src/plugins/python/ | weechat-python.c, weechat-python-api.c, ...
+|===
+
+Заглавља C фајлова имају сито име као и фајл, на пример _wee-command.h_ за фајл _wee-command.c_.
+
+[[naming_convention_structures]]
+==== Структуре
+
+Структуре имају име _t_X_Y_ или _t_X_Y_Z_:
+
+* _X_: директоријум/компонента (може бити и скраћеница)
+* _Y_: крај имена фајла
+* _Z_: име за структуру (није обавезно)
+
+Пример: IRC надимак (из _src/plugins/irc/irc-nick.h_):
+
+[source, C]
+----
+struct t_irc_nick
+{
+ char *name; /* nickname */
+ char *host; /* full hostname */
+ char *prefixes; /* string with prefixes enabled for nick */
+ char prefix[2]; /* current prefix (higher prefix set in */
+ /* prefixes) */
+ int away; /* 1 if nick is away */
+ char *color; /* color for nickname in chat window */
+ struct t_irc_nick *prev_nick; /* link to previous nick on channel */
+ struct t_irc_nick *next_nick; /* link to next nick on channel */
+};
+----
+
+[[naming_convention_variables]]
+==== Променљиве
+
+Глобалне променљиве (ван функција) имају име _X_Y_Z_:
+
+* _X_: директоријум/компонента (може бити и скраћеница)
+* _Y_: крај имена фајла
+* _Z_: име за променљиву
+
+Изузетак су променљиве за „последњи” чвор листе, име је _last_X_ (где је _X_ име променљиве, користећи облик једнине).
+
+Пример: прозори (from _src/gui/gui-window.c_):
+
+[source, C]
+----
+struct t_gui_window *gui_windows = NULL; /* first window */
+struct t_gui_window *last_gui_window = NULL; /* last window */
+struct t_gui_window *gui_current_window = NULL; /* current window */
+----
+
+За локалне променљиве (у функцијама) нема конвенције давања имена. Једина препорука је да име буде експлицитно (не сувише кратко). + Ипак, показивачи на структуре се често именују са _ptr_xxxx_, на пример показивач на структуру _struct t_gui_buffer *_ ће бити: _*ptr_buffer_.
+
+[[naming_convention_functions]]
+==== Функције
+
+Конвенција именовања функција је иста као за <<naming_convention_variables,променљиве>>.
+
+Пример: креирање новог прозора (из _src/gui/gui-window.c_):
+
+[source, C]
+----
+/*
+ * Creates a new window.
+ *
+ * Returns pointer to new window, NULL if error.
+ */
+
+struct t_gui_window *
+gui_window_new (struct t_gui_window *parent_window, struct t_gui_buffer *buffer,
+ int x, int y, int width, int height,
+ int width_pct, int height_pct)
+{
+ /* ... */
+
+ return new_window;
+}
+----
+
+[[single_thread]]
+=== Једна нит извршавања
+
+Програм WeeChat се извршава у једној нити. То значи да би сваки део кода требало да се извршава веома брзо и да су позиви функција као што је `sleep` *стриктно забрањени* (то је тачно за WeeChat језгро, али и за C додатке и скрипте).
+
+Ако из неког разлога морате да одспавате накратко, употребите `hook_timer` са функцијом повратног позива.
+
+[[doubly_linked_lists]]
+=== Двоструко уланчане листе
+
+Већина листи у програму WeeChat су двоструко уланчане листе: сваки чвор има показивач на претходни и на следећи чвор.
+
+Пример: листа бафера (из _src/gui/gui-buffer.h_):
+
+[source, C]
+----
+struct t_gui_buffer
+{
+ /* data */
+
+ /* ... */
+
+ struct t_gui_buffer *prev_buffer; /* link to previous buffer */
+ struct t_gui_buffer *next_buffer; /* link to next buffer */
+};
+----
+
+Затим, сва показивача листе, на чело и на реп листе:
+
+[source, C]
+----
+struct t_gui_buffer *gui_buffers = NULL; /* first buffer */
+struct t_gui_buffer *last_gui_buffer = NULL; /* last buffer */
+----
+
+[[color_codes_in_strings]]
+=== Кодови боја у стринговима
+
+Програм WeeChat користи сопствене кодове боја у стринговима за приказ атрибута (подебљано, подвучено, ...) и боја на екрану.
+
+Испред свих атрибута/боја се налази карактер у стрингу који може бити:
+
+* _0x19_: кôд боје (иза кога следи кôд (или више њих) боје))
+* _0x1A_: постави атрибут (иза кога следи атрибут као један карактер)
+* _0x1B_: уклони атрибут (иза кога следи атрибут као један карактер)
+* _0x1C_: ресет (нема ништа иза)
+
+Дозвољени су атрибути (један или више карактера):
+
+* `+*+`: подебљано
+* `+!+`: обрнуто
+* `+/+`: курзив
+* `+_+`: подвучено
+* `+|+`: задржавају се постојећи атрибути
+
+Могуће су следеће боје:
+
+* стандардна боја: необавезни атрибути + двоцифрени број
+* проширена боја: `+@+` + необавезни атрибути + петоцифрени број
+
+У следећој табели се подразумева следеће:
+
+* `СТД`: стандардна боја (2 цифре)
+* `(А)СТД`: стандардна боја са необавезним атрибутима (атрибути + 2 цифре)
+* `ПРО`: проширена боја (`+@+` + 5 цифара)
+* `(A)ПРО`: проширена боја са необавезним атрибутима (`+@+` + атрибути + 5 цифара)
+* `АТР`: један карактер атрибута (`+*+`, `+!+`, `+/+`, `+_+` или `+|+`)
+
+У следећој табели су сажете све комбинације:
+
+[width="100%", cols="4,2,2,8", options="header"]
+|===
+| Кôд | Пример | Површине | Опис
+| [hex]#19# + СТД | [hex]#19# `+01+` | чет + траке | Постављање атрибута и боје опцијама, погледајте табелу испод.
+| [hex]#19# + ПРО | [hex]#19# `+@00001+` | chat | Постављање боје са ncurses паром (користи се само у `/color` баферу).
+| [hex]#19# + "F" + (A)СТД | [hex]#19# `+F*05+` | чет + траке | Постављање предњег плана (WeeChat боја).
+| [hex]#19# + "F" + (A)ПРО | [hex]#19# `+F@00214+` | чет + траке | Постављање предњег плана (проширена боја).
+| [hex]#19# + "B" + СТД | [hex]#19# `+B05+` | чет + траке | Постављање предњег плана (WeeChat боја).
+| [hex]#19# + "B" + ПРО | [hex]#19# `+B@00124+` | чет + траке | Постављање предњег плана (проширена боја).
+| [hex]#19# + "*" + (A)СТД | [hex]#19# `+*05+` | чет + траке | Постављање предњег плана (WeeChat боја).
+| [hex]#19# + "*" + (A)ПРО | [hex]#19# `+*@00214+` | чет + траке | Постављање предњег плана (проширена боја).
+| [hex]#19# + "*" + (A)СТД + "," + СТД ^(1)^ | [hex]#19# `+*08,05+` | чет + траке | Постављање предњег плана/позадине (WeeChat боје).
+| [hex]#19# + "*" + (A)СТД + "," + ПРО ^(1)^ | [hex]#19# `+*01,@00214+` | чет + траке | Постављање предњег плана (WeeChat боје) у позадине (проширена боја).
+| [hex]#19# + "*" + (A)ПРО + "," + СТД ^(1)^ | [hex]#19# `+*@00214,05+` | чет + траке | Постављање предњег плана (extended color) и позадине (WeeChat color).
+| [hex]#19# + "*" + (A)ПРО + "," + ПРО ^(1)^ | [hex]#19# `+*@00214,@00017+` | чет + траке | Постављање предњег плана/позадине (проширене боје).
+| [hex]#19# + "*" + (A)СТД + "~" + СТД | [hex]#19# `+*08~05+` | чет + траке | Постављање предњег плана/позадине (WeeChat боје).
+| [hex]#19# + "*" + (A)СТД + "~" + ПРО | [hex]#19# `+*01~@00214+` | чет + траке | Постављање предњег плана (WeeChat color) и позадине (проширена боја).
+| [hex]#19# + "*" + (A)ПРО + "~" + СТД | [hex]#19# `+*@00214~05+` | чет + траке | Постављање предњег плана (проширена боја) и позадине (WeeChat color).
+| [hex]#19# + "*" + (A)ПРО + "~" + ПРО | [hex]#19# `+*@00214~@00017+` | чет + траке | Постављање предњег плана/позадине (проширене боје).
+| [hex]#19# + "b" + "F" | [hex]#19# `+bF+` | траке | Постављање боје предњег плана траке.
+| [hex]#19# + "b" + "D" | [hex]#19# `+bD+` | траке | Постављање боје граничника траке.
+| [hex]#19# + "b" + "B" | [hex]#19# `+bB+` | траке | Постављање боје позадине траке.
+| [hex]#19# + „b” + „_” | [hex]#19# `+b_+` | трака уноса | Почетак уноса карактера (користи се само у ставки „input_text”).
+| [hex]#19# + „b” + „-” | [hex]#19# `+b-+` | трака уноса | Почетак уноса скривеног карактера (користи се само у ставки „input_text”).
+| [hex]#19# + „b” + „#” | [hex]#19# `+b#+` | трака уноса | Померање курсор карактера (користи се само у ставки „input_text”).
+| [hex]#19# + „b” + „i” | [hex]#19# `+bi+` | траке | Почетак ставке.
+| [hex]#19# + „b” + „l” (мало L) | [hex]#19# `+bl+` | траке | Почетак линије ставке.
+| [hex]#19# + „E” | [hex]#19# `+E+` | чет + траке | Наглашавање текста _(WeeChat ≥ 0.4.2)_.
+| [hex]#19# + [hex]#1C# | [hex]#19# [hex]#1C# | чет + траке | Ресет боје (уз задржавање атрибута).
+| [hex]#1A# + АТР | [hex]#1A# `+*+` | чет + траке | Постављање атрибута.
+| [hex]#1B# + АТР | [hex]#1B# `+*+` | чет + траке | Уклањање атрибута.
+| [hex]#1C# | [hex]#1C# | чет + траке | Ресет атрибута и боје.
+|===
+
+[NOTE]
+^(1)^ Као граничник се користила запета све до верзије WeeChat 2.5. + У верзијама WeeChat ≥ 2.6, користи се тилда за раздвајање боје предњег плана од боје позадине. Ако развијате WeeChat релеј клијент и желите да буде компатибилан са свим WeeChat верзијама, требало би да подржава оба граничника (на пример, корисник са WeeChat ≤ 2.5 изврши `/upgrade` на верзију ≥ 2.6, па би у баферима оба граничника могла да се користе у исто време).
+
+Кодови боја употребом опција (погледајте _t_gui_color_enum_, у фајлу _src/gui/gui-color.h_):
+
+[width="80%", cols="^1m,10", options="header"]
+|===
+| Кôд | Опција
+| 00 | weechat.color.separator
+| 01 | weechat.color.chat
+| 02 | weechat.color.chat_time
+| 03 | weechat.color.chat_time_delimiters
+| 04 | weechat.color.chat_prefix_error
+| 05 | weechat.color.chat_prefix_network
+| 06 | weechat.color.chat_prefix_action
+| 07 | weechat.color.chat_prefix_join
+| 08 | weechat.color.chat_prefix_quit
+| 09 | weechat.color.chat_prefix_more
+| 10 | weechat.color.chat_prefix_suffix
+| 11 | weechat.color.chat_buffer
+| 12 | weechat.color.chat_server
+| 13 | weechat.color.chat_channel
+| 14 | weechat.color.chat_nick
+| 15 | weechat.color.chat_nick_self
+| 16 | weechat.color.chat_nick_other
+| 17 | _(од WeeChat верзије 0.3.4 се више не користи)_
+| 18 | _(од WeeChat верзије 0.3.4 се више не користи)_
+| 19 | _(од WeeChat верзије 0.3.4 се више не користи)_
+| 20 | _(од WeeChat верзије 0.3.4 се више не користи)_
+| 21 | _(од WeeChat верзије 0.3.4 се више не користи)_
+| 22 | _(од WeeChat верзије 0.3.4 се више не користи)_
+| 23 | _(од WeeChat верзије 0.3.4 се више не користи)_
+| 24 | _(од WeeChat верзије 0.3.4 се више не користи)_
+| 25 | _(од WeeChat верзије 0.3.4 се више не користи)_
+| 26 | _(од WeeChat верзије 0.3.4 се више не користи)_
+| 27 | weechat.color.chat_host
+| 28 | weechat.color.chat_delimiters
+| 29 | weechat.color.chat_highlight
+| 30 | weechat.color.chat_read_marker
+| 31 | weechat.color.chat_text_found
+| 32 | weechat.color.chat_value
+| 33 | weechat.color.chat_prefix_buffer
+| 34 | weechat.color.chat_tags _(WeeChat ≥ 0.3.6)_
+| 35 | weechat.color.chat_inactive_window _(WeeChat ≥ 0.3.6)_
+| 36 | weechat.color.chat_inactive_buffer _(WeeChat ≥ 0.3.6)_
+| 37 | weechat.color.chat_prefix_buffer_inactive_buffer _(WeeChat ≥ 0.3.6)_
+| 38 | weechat.color.chat_nick_offline _(WeeChat ≥ 0.3.9)_
+| 39 | weechat.color.chat_nick_offline_highlight _(WeeChat ≥ 0.3.9)_
+| 40 | weechat.color.chat_nick_prefix _(WeeChat ≥ 0.4.1)_
+| 41 | weechat.color.chat_nick_suffix _(WeeChat ≥ 0.4.1)_
+| 42 | weechat.color.emphasized _(WeeChat ≥ 0.4.2)_
+| 43 | weechat.color.chat_day_change _(WeeChat ≥ 0.4.2)_
+| 44 | weechat.color.chat_value_null _(WeeChat ≥ 1.4)_
+|===
+
+Ово су WeeChat боје:
+
+[width="80%", cols="^1m,10", options="header"]
+|===
+| Кôд | Боја
+| 00 | Подразумевана (боја предњег плана/позадине у терминалу)
+| 01 | Црна
+| 02 | Тамносива
+| 03 | Тамноцрвена
+| 04 | Светлоцрвена
+| 05 | Тамнозелена
+| 06 | Светлозелена
+| 07 | Браон
+| 08 | Жута
+| 09 | Тамноплава
+| 10 | Светлоплава
+| 11 | Тамномагента
+| 12 | Светломагента
+| 13 | Тамнотиркизна
+| 14 | Светлотиркизна
+| 15 | Сива
+| 16 | Бела
+|===
+
+Примери кодова боја:
+
+[width="100%", cols="1,2", options="header"]
+|===
+| Кôд | Опис
+| [hex]#19# `+01+` | Боја опције "01" (текст разговора)
+| [hex]#19# `+*08,03+` | Жута на црвеном
+| [hex]#19# `+*@00214+` | Наранџаста (проширена боја 214)
+| [hex]#19# `+*@*_00214,@00017+` | Подебљана подвучена наранџаста (214) на тамноплавој (17)
+| [hex]#1A# `+_+` | Поставља подвлачење
+| [hex]#1B# `+_+` | Уклања подвлачење
+| [hex]#1C# | Ресетује атрибуте и боје
+|===
+
+[[plugin_internals]]
+== Интерне ствари додатака
+
+Фајл _src/plugins/weechat-plugin.h_ дефинише и извози све функције које су доступне у API.
+
+За чување информација о додатку се користи структура под именом _t_weechat_plugin_ (име фајла, име, аутор, опис, ...) и све API функције, као показивачи на WeeChat функције.
+
+Дефинисани су и неки макрои за позивање ових функција.
+
+На пример, функција _hook_timer_ је дефинисана у структури _t_weechat_plugin_ на следећи начин:
+
+[source, C]
+----
+struct t_hook *(*hook_timer) (struct t_weechat_plugin *plugin,
+ long interval,
+ int align_second,
+ int max_calls,
+ int (*callback)(void *data,
+ int remaining_calls),
+ void *callback_data);
+----
+
+А макро који се користи за позивање ове функције је:
+
+[source, C]
+----
+#define weechat_hook_timer(__interval, __align_second, __max_calls, \
+ __callback, __data) \
+ weechat_plugin->hook_timer(weechat_plugin, __interval, \
+ __align_second, __max_calls, \
+ __callback, __data)
+----
+
+Тако да ће у додатку позив функције изгледати овако:
+
+[source, C]
+----
+server->hook_timer_sasl = weechat_hook_timer (timeout * 1000,
+ 0, 1,
+ &irc_server_timer_sasl_cb,
+ server);
+----
+
+[[contribute]]
+== Давање доприноса програму WeeChat
+
+[[git_repository]]
+=== Git репозиторијум
+
+Git репозиторијум се налази на следећој URL адреси: https://github.com/weechat/weechat
+
+Било каква закрпа бага или нова могућност мора да да се уради над мастер граном, пожељно је преко GitHub pull захтева. Закрпа такође може да се пошаље и имејлом (направљена са `git diff` или `git format-patch`).
+
+Формат комит поруке је следећи (са аутоматским затварањем GitHub проблема):
+
+----
+компонента: исправка проблема (затвара #123)
+----
+
+Где је _компонента_ једно од следећег:
+
+* WeeChat језгро: _core_ (фајлови у кореном директоријуму, _po/_ и _src/_, осим _src/plugins/_)
+* фајлови документације: _doc_ (фајлови у директоријуму _doc/_)
+* име додатка: _irc_, _python_, _relay_, ... (фајлови у директоријуму _src/plugins/_)
+
+Нека правила која треба да поштујете:
+
+* Користите само енглески језик.
+* Користите глагол у инфинитиву.
+* Ако је комит у вези са GitHub проблемом, напишите га у заградама након поруке, у формату: `(issue #123)` или `(closes #123)` да га затворите.
+
+Примери комит порука:
+
+----
+core: add callback "nickcmp" for nick comparison in buffers
+core: update Japanese translations
+irc: add command /unquiet (closes #36)
+python: fix crash when unloading a script without pointer to interpreter
+ruby: add detection of ruby version 1.9.3 in CMake
+----
+
+[[translations]]
+=== Преводи
+
+[[gettext]]
+==== Gettext
+
+Gettext фајлови се налазе у _po/_ директоријуму.
+
+Ако желите да иницијализујете нови језик, употребите команду `msginit`. На пример, да бисте креирали нови фајл који је спреман за превод на холандски:
+
+----
+$ cd po
+$ msginit -i weechat.pot -l nl_NL -o nl.po
+----
+
+Базни језик за програм WeeChat је енглески, тако да се подразумева да перфектно разумете енглески како бисте могли да урадите превод на свој језик.
+
+Након измена у изворним фајловима, можете да регенеришете све фајлове превода следећом командом у CMake „build” директоријуму:
+
+----
+$ make translations && make update-po
+----
+
+Затим можете да уређујте .po фајлове (ако можете да преводите на језик).
+
+Када завршите, *морате* да проверите свој фајл скриптом _msgcheck.py_ (https://github.com/flashcode/msgcheck):
+
+----
+$ msgcheck.py xx.po
+----
+
+И након тога можете да рекомпајлирате програм WeeChat тако да користи нове преводе.
+
+[[build_autogen_files]]
+===== Изградња ауто-генерисаних фајлова
+
+Фајлове са именом `+autogen_*+` у директоријуму _doc/XX/includes/_ аутоматски генерише скрипта _doc/docgen.py_.
+
+Ауто-генерисане фајлове можете поново да изградите директни у својим WeeChat изворима покретањем програма WeeChat у привременом директоријуму и учитавањем скрипте:
+
+----
+weechat -t -r "/python load /путања/до/weechat/doc/docgen.py;/docgen;/quit"
+----
+
+[[asciidoc]]
+==== Asciidoc
+
+Asciidoc фајлови се налазе у директоријуму _doc/XX/_ где је _XX_ језик (en, fr, de, it, ...).
+
+Најпре направите копију енглеског asciidoc фајла (у директоријуму _doc/en/_), па затим радите на њој.
+
+Преводи који недостају у фајловима су назначени следећим стрингом:
+
+----
+// TRANSLATION MISSING
+----
+
+Морате да преведете комплетан фајл осим линкова и специјалних кључних речи за напомене, упозорења, ... Ове речи морате оставити непреведене:
+
+----
+[[име_линка]]
+<<име_линка>>
+
+[NOTE]
+[TIP]
+[IMPORTANT]
+[WARNING]
+[CAUTION]
+----
+
+Када након `<<име_линка>>` постоји име, онда морате да га преведете:
+
+----
+<<име_линка,овај текст мора да се преведе>>
+----
diff --git a/doc/sr/weechat_faq.sr.adoc b/doc/sr/weechat_faq.sr.adoc
new file mode 100644
index 000000000..7d58239d7
--- /dev/null
+++ b/doc/sr/weechat_faq.sr.adoc
@@ -0,0 +1,1079 @@
+= WeeChat ЧПП (Често Постављана Питања)
+:author: Sébastien Helleu
+:email: flashcode@flashtux.org
+:lang: sr
+:toc: left
+:toclevels: 2
+:toc-title: Садржај
+:sectnums:
+:sectnumlevels: 2
+:docinfo1:
+
+
+Овај документ је написан за програм WeeChat верзије ≥ 0.3.0 али је пожељно да се користи са најновијом стабилном верзијом програма WeeChat.
+
+toc::[]
+
+
+[[general]]
+== Опште
+
+[[weechat_name]]
+=== Шта је порекло имена „WeeChat”?
+
+„Wee” је рекурзивни акроним који значи „Wee Enhanced Environment”. (Wee Унапређено Окружење) Тако да је комплетно име „Wee Enhanced Environment for Chat”.
+
+„Wee” такође значи и „веома мало” (јесте, постоји и друго значење, али се оно не примењује за WeeChat!).
+
+[[why_choose_weechat]]
+=== Зашто да изаберем WeeChat? X-Chat и Irssi су толико добри...
+
+Јер WeeChat уопште не оптерећује систем и доноси иновативне могућности.
+
+Више информација на WeeChat страници са могућностима: https://weechat.org/about/features
+
+[[compilation_install]]
+== Компајлирање / инсталација
+
+[[gui]]
+=== Чуо сам о многим ГКИ за WeeChat. Како да их компајлирам/користим?
+
+Доступни су неки удаљени ГКИ, погледајте страницу са удаљеним интерфејсима: https://weechat.org/about/interfaces
+
+[[compile_git]]
+=== Након клонирања git репозиторијума не могу да компајлирам програм WeeChat, зашто?
+
+Препоручени начин да за компајлирање програма WeeChat је помоћу link:weechat_user.sr.html#compile_with_cmake[CMake].
+
+Ако компајлирате са link:weechat_user.sr.html#compile_with_autotools[autotools] (а не са CMake), проверите да ли поседујете најновију верзију пакета autoconf и automake.
+
+Други начин је да се инсталира „devel package”, што тражи мање зависности. Овај пакет се се изграђује скоро свакодневно користећи git репозиторијум. Приметите да овај пакет можда није потпуно исти као git база, као и да је инсталирање ажурирања компликованије него просто git клонирање.
+
+[[compile_macos]]
+=== Како да инсталирам програм WeeChat на macOS систем?
+
+Препоручује се употребите https://brew.sh/[Homebrew], помоћ можете добити са:
+
+----
+brew info weechat
+----
+
+Програм WeeChat можете да инсталирате следећом командом:
+
+----
+brew install weechat
+----
+
+[[lost]]
+=== Покренуо сам програм WeeChat, али не знам шта даље?
+
+За помоћ можете да откуцате `/help`. За помоћ у вези команде, откуцајте `/help команда`. link:weechat_user.sr.html#key_bindings[Тастери] и link:weechat_user.sr.html#commands_and_options[команде] су наведени у документацији.
+
+Препоручује се да нови корисници прочитају link:weechat_quickstart.sr.html[Водич за брзи почетак].
+
+[[display]]
+== Приказ
+
+[[charset]]
+=== Не виде се неки карактери са акцентима, шта да радим?
+
+Ово је уобичајени проблем који има разне узроке, молимо вас да пажљиво прочитате и пробате *СВА* решења наведена ниже:
+
+* Проверите да је weechat повезан са libncursesw (упозорење: потребно на многим дистрибуцијама, али не на свим): `ldd /путања/до/weechat`.
+* Провери да је „charset” додатак учитан командом `/plugin` (ако није, онда вам је највероватније потребан „weechat-plugins” пакет).
+* Проверите излаз команде `/charset` (над core бафером). Требало би да видите _ISO-XXXXXX_ или _UTF-8_ за скуп карактера терминала. Ако видите _ANSI_X3.4-1968_ или остале вредности, највероватније вам је погрешан локале. + Да поправите свој локале, погледајте инсталиране локале са `locale -a` и поставите одговарајућу вредност у променљиву $LANG, на пример: `+export LANG=sr_RS.UTF-8+`.
+* Поставите глобалну вредност за декодирање, на пример: `/set charset.default.decode "ISO-8859-15"`.
+* Ако користите UTF-8 локале:
+** Проверите да ли ваш терминал подржава UTF-8 (препоручени терминал за UTF-8 је rxvt-unicode).
+** Ако користите screen, проверите да се извршава у UTF-8 режиму („`defutf8 on`” у ~/.screenrc или покрените screen са `screen -U`).
+* Проверите да је опција link:weechat_user.sr.html#option_weechat.look.eat_newline_glitch[_weechat.look.eat_newline_glitch_] искључена (ова опција може да изазове багове у приказу).
+
+[NOTE]
+За програм WeeChat се препоручује UTF-8 локале. Ако користите ISO или неки други локале, молимо вас да проверите ли су *сва* ваша подешавања (терминал, screen, ...) ISO, а *не* UTF-8.
+
+[[unicode_chars]]
+=== Неки уникод карактери се приказују у терминалу, али не у програму WeeChat, зашто?
+
+Узрок овом проблему може бити libc баг у функцији _wcwidth_, који би требало да је исправљен у glibc 2.22 (можда још увек није доступна у вашој дистрибуцији).
+
+Постоји решење да се користи исправљена _wcwidth_ функција: https://blog.nytsoi.net/2015/05/04/emoji-support-for-weechat
+
+За више информација, погледајте овај извештај о багу: https://github.com/weechat/weechat/issues/79
+
+[[bars_background]]
+=== Траке као што су насловна и статусна нису испуњене, боја позадине се прекида након текста, зашто?
+
+Узрок овоме може бити погрешна вредност променљиве TERM и важем командном окружењу (погледајте излаз команде `echo $TERM` у свом терминалу).
+
+У зависности од тога где сте покренули програм WeeChat, требало би да имате:
+
+* Ако се програм WeeChat извршава локално или на удаљеној машини без screen и без tmux, зависи од врсте терминала који користите: _xterm_, _xterm-256color_, _rxvt-unicode_, _rxvt-256color_, итд.
+* Ако се програм WeeChat извршава под screen, требало би да добијете _screen_ или _screen-256color_.
+* Ако се програм WeeChat извршава под tmux, требало би да добијете _tmux_, _tmux-256color_, _screen_ или _screen-256color_.
+
+Ако је потребно, исправите своју TERM променљиву: `export TERM="xxx"`.
+
+[[screen_weird_chars]]
+=== Када програм weechat користим под screen/tmux, приказују ми се чудни карактери, како то да поправим?
+
+Разлог за ово може бити погрешна вредност променљиве TERM у вашем командном окружењу (погледајте излаз команде `echo $TERM` у свом терминалу, *ван screen/tmux*). + На пример, _xterm-color_ може да прикаже такве чудне карактере, па можете да користите _xterm_ што је OK (као и многе друге вредности). + Ако је потребно, исправите своју TERM променљиву: `export TERM=„xxx”`.
+
+Ако користите gnome-terminal, проверите да ли је опција „Ambiguous-width characters” у менију Preferences/Profile/Compatibility постављена на `narrow`.
+
+[[macos_display_broken]]
+=== Компајлирао сам програм WeeChat под macOS, и свуда на екрану видим „(null)”, шта није у реду?
+
+Ако сте сами компајлирали ncursesw, покушајте да користите стандардни ncurses (који долази уз систем).
+
+Уз то, на macOS систему се препоручује да се програм WeeChat инсталира са Homebrew менаџером пакета.
+
+[[buffer_vs_window]]
+=== Чуо сам о „баферима” и „прозорима”, у чему је разлика?
+
+_бафер_ се састоји из броја, имена, приказаних линија (и још неких података).
+
+_прозор_ је површина екрана која приказује бафер. Свој екран можете да изделите на више прозора.
+
+Сваки прозор приказује један бафер, или скуп спојених бафера. Бафер може бити скривен (тада се не приказује у прозору) или може да се приказује у једном или више прозора.
+
+[[buffers_list]]
+=== Како да се са леве стране прикаже листа бафера?
+
+У WeeChat ≥ 1.8, додатак link:weechat_user.sr.html#buflist_plugin[buflist] се подразумевано учитава и укључује.
+
+У старијој верзији можете инсталирате скрипту _buffers.pl_:
+
+----
+/script install buffers.pl
+----
+
+Ако желите да ограничите величину траке (замените „buflist” са „buffers” ако користите скрипту _buffers.pl_):
+
+----
+/set weechat.bar.buflist.size_max 15
+----
+
+Ако траку желите да померите на дно:
+
+----
+/set weechat.bar.buflist.position bottom
+----
+
+Ако желите да скролујете траку: у случају да је укључен миш (тастер: kbd:[Alt+m]), траку можете да скролујете точкићем миша.
+
+Подразумевани тастери за скроловање _buflist_ траке су kbd:[F1] (или kbd:[Ctrl+F1]), kbd:[F2] (или kbd:[Ctrl+F2]), kbd:[Alt+F1] и kbd:[Alt+F2].
+
+За скрипту _buffers.pl_, тастере можете да дефинишете слично постојећим тастерима за скроловање листе надимака. + На пример да користите kbd:[F1], kbd:[F2], kbd:[Alt+F1] и kbd:[Alt+F2]:
+
+----
+/key bind meta-OP /bar scroll buffers * -100%
+/key bind meta-OQ /bar scroll buffers * +100%
+/key bind meta-meta-OP /bar scroll buffers * b
+/key bind meta-meta-OQ /bar scroll buffers * e
+----
+
+[NOTE]
+Тастери „meta-OP” и „meta-OQ” могу да се разликују у вашем терминалу. За проналажење кода тастера, притисните kbd:[Alt+k] па затим жељени тастер.
+
+[[customize_buflist]]
+=== Како могу да прилагодим листу бафера, као на пример боју активног бафера?
+
+Све buflist опције можете да погледате командом:
+
+----
+/fset buflist
+----
+
+Позадина активног бафера је подразумевано плава, можете да је промените на следећи начин, на пример, на `red`:
+
+----
+/set buflist.format.buffer_current "${color:,red}${format_buffer}"
+----
+
+[NOTE]
+Испред имена боје „red” постоји запета јер се користи као позадина, а не као боја текста. + Уместо `red` можете да употребите било коју нумеричку боју, као што је `237` за тамно сиву.
+
+Додатак buflist обезбеђује доста опција које можете да прилагодите својим потребама, молимо вас да прочитате помоћ у вези сваке опције.
+
+Постоји и вики страница са примерима напредне buflist конфигурације: https://github.com/weechat/weechat/wiki/buflist
+
+[[customize_prefix]]
+=== Како да скратим дужину надимака или да уклоним поравнање надимка у простору за разговор?
+
+Ако желите да у простору за разговор скратите максималну дужину надимака:
+
+----
+/set weechat.look.prefix_align_max 15
+----
+
+Ако желите да уклоните поравнање надимака:
+
+----
+/set weechat.look.prefix_align none
+----
+
+[[status_hotlist]]
+=== Шта значи [H: 3(1,8), 2(4)] у статусној траци?
+
+Ово се зове „врућа листа”, листа бафера са бројем порука које нисте прочитали, у следећем редоследу: истицања, приватне поруке, поруке, остале поруке (као што су join/part). + Број „порука које нисте прочитали” је број нових порука приказаних/примљених од када сте посетили бафер.
+
+У примеру `[H: 3(1,8), 2(4)]`, има:
+
+* 1 истицање и 8 непрочитаних порука у баферу #3,
+* 4 непрочитане поруке у баферу #2.
+
+Боја бафера/бројача зависи од типа поруке, ово су подразумеване боје:
+
+* истицање: `lightmagenta` / `magenta`
+* приватна порука: `lightgreen` / `green`
+* порука: `yellow` / `brown`
+* остале поруке: `default` / `default` (боја текста у терминалу)
+
+Ове боје могу да се промене опцијама __weechat.color.status_data_*__ (бафери) и __weechat.color.status_count_*__ (бројачи). + Остале опције вруће листе могу да се промене опцијама __weechat.look.hotlist_*__.
+
+За више информација у вези вруће листе, погледајте link:weechat_user.sr.html#screen_layout[Корисничко упутство / Распоред екрана].
+
+[[input_bar_size]]
+=== Како се користи командна линија са више од једне линије?
+
+Опција _size_ у траци уноса може да се постави на вредност већу од 1 (за фиксну величину, подразумевана величина је 1) или на 0 за динамичку величину, у ком случају опција _size_max_ поставља максималну величину (0 = без ограничења).
+
+Пример са динамичком величином:
+
+----
+/set weechat.bar.input.size 0
+----
+
+Максимална величина 2:
+
+----
+/set weechat.bar.input.size_max 2
+----
+
+[[one_input_root_bar]]
+=== Да ли је могуће да се за све прозоре прикаже само једна трака за унос (након поделе)?
+
+Могуће је, потребно је да креирате траку типа „root” (са ставком која ће вам говорити у ком прозору се налазите), па затим да обришете текућу траку за унос.
+
+На пример:
+
+----
+/bar add rootinput root bottom 1 0 [buffer_name]+[input_prompt]+(away),[input_search],[input_paste],input_text
+/bar del input
+----
+
+У случају да нисте задовољни са овим, једноставно обришите нову траку и програм WeeChat ће аутоматски да креира подразумевану траку „input” у случају да се ставка „input_text” не користи ни у једној постојећој траци:
+
+----
+/bar del rootinput
+----
+
+[[terminal_copy_paste]]
+=== Како могу да копирам/налепљујем текст без налепљивања листе надимака?
+
+У WeeChat ≥ 1.0 можете да користите огољени приказ (подразумевани тастер: kbd:[Alt+l] (`L`)), који приказује само садржај тренутно изабраног прозора, без икаквог форматирања.
+
+Можете да користите терминал са правоугаоним избором (као rxvt-unicode, konsole, gnome-terminal, итд.). Тастер је обично kbd:[Ctrl] + kbd:[Alt] + извор мишем.
+
+Друго решење је да листу надимака померите на врх или дно, на пример:
+
+----
+/set weechat.bar.nicklist.position top
+----
+
+[[urls]]
+=== Како да кликнем на дугачке URL адресе (које заузимају више од једне линије)?
+
+У WeeChat ≥ 1.0 можете да користите огољени приказ (подразумевани тастер: kbd:[Alt+l] (`L`)).
+
+Ако желите да олакшате отварање URL адреса, можете да:
+
+* померите листу надимака на врх:
+
+----
+/set weechat.bar.nicklist.position top
+----
+
+* искључите поравнање за речи које се простиру на више линија (WeeChat ≥ 1.7):
+
+----
+/set weechat.look.align_multiline_words off
+----
+
+* или за све обавијене линије:
+
+----
+/set weechat.look.align_end_of_lines time
+----
+
+У WeeChat ≥ 0.3.6 можете да укључите опцију „eat_newline_glitch”, тако да се карактер прелома линије не додаје на крај сваке приказане линије (па се неће преломити избор URL адресе):
+
+----
+/set weechat.look.eat_newline_glitch on
+----
+
+[IMPORTANT]
+Ова опција може да буде узрок багова у приказу. Ако имате такве проблеме, морате да искључите ову опцију.
+
+Друго решење је да користите скрипту:
+
+----
+/script search url
+----
+
+[[change_locale_without_quit]]
+=== Желим да променим језик који програм WeeChat користи за поруке, али без прекида извршавања програма WeeChat, да ли је то могуће?
+
+Наравно да је могуће:
+
+----
+/set env LANG sr_RS.UTF-8
+/upgrade
+----
+
+[[timezone]]
+=== Како могу да променим временску зону?
+
+У програму WeeChat не постоји опција за промену временске зоне, променљиву окружења `TZ` морате да поставите на жељену вредност.
+
+У иницијализационом фајлу свог командног окружења или на командној линији, пре покретања програма WeeChat:
+
+----
+export TZ=America/New_York
+----
+
+Из програма WeeChat, нова вредност се користи тренутно:
+
+----
+/set env TZ America/New_York
+----
+
+[[use_256_colors]]
+=== Како да користим 256 боја у програму WeeChat?
+
+256 боја подржава програм WeeChat верзије ≥ 0.3.4.
+
+Најпре проверите да ли је вредност ваше променљиве окружења _TERM_ исправна, препоручене вредности су следеће:
+
+* под screen: _screen-256color_
+* под tmux: _screen-256color_ или _tmux-256color_
+* ван screen/tmux: _xterm-256color_, _rxvt-256color_, _putty-256color_, ...
+
+[NOTE]
+Можда ће бити потребно да инсталирате пакет „ncurses-term” како бисте могли да у _TERM_ променљивој користите ове вредности.
+
+Ако користите screen, можете да додате следећу линију у свој _~/.screenrc_:
+
+----
+term screen-256color
+----
+
+Ако је вредност ваше _TERM_ променљиве погрешна и програм WeeChat се већ извршава, можете да је промените помоћу следеће две команде (у WeeChat ≥ 1.0):
+
+----
+/set env TERM screen-256color
+/upgrade
+----
+
+У верзији 0.3.4 морате да употребите команду `/color` да додате нове боје.
+
+У верзијама ≥ 0.3.5 можете да користите било који број боје у опцијама (није обавезно: командом `/color` можете да дефинишете алијасе боја).
+
+За више информација у вези управљања бојама, молимо вас да прочитате link:weechat_user.sr.html#colors[Корисничко упутство / Боје].
+
+[[search_text]]
+=== Како могу да претражујем текст у баферу (као /lastlog у програму irssi)?
+
+Подразумевани тастер је kbd:[Ctrl+r] (команда је: `+/input овде_текст_претраге+`). И скок на истицања: kbd:[Alt+p] / kbd:[Alt+n].
+
+За више о овој могућности, погледајте link:weechat_user.sr.html#key_bindings[Корисничко упутство / Тастерске пречице].
+
+[[terminal_focus]]
+=== Како могу да извршим команде када терминал добије/изгуби фокус?
+
+Морате да укључите фоку догађаје тако што терминалу пошаљете специјални кôд.
+
+*Важно*:
+
+* Морате да користите модерни xterm-компатибилни терминал.
+* Уз то, изгледа да је важно и да вредност ваше TERM променљиве буде _xterm_ или _xterm-256color_.
+* Ако користите tmux, морате да укључите фокус догађаје постављањем `set -g focus-events on` у свој _.tmux.conf_ фајл.
+* Ово *не* функционише у програму screen.
+
+Ако желите да се кôд пошаље током покретања програма WeeChat:
+
+----
+/set weechat.startup.command_after_plugins "/print -stdout \033[?1004h\n"
+----
+
+и да затим вежете две пречице за фокус (замените `/print` команде командама по свом избору):
+
+----
+/key bind meta2-I /print -core focus
+/key bind meta2-O /print -core unfocus
+----
+
+Ако желите, на пример, да означите бафере као прочитане када терминал изгуби фокус:
+
+----
+/key bind meta2-O /input set_unread
+----
+
+[[screen_paste]]
+=== Зашто када се програм WeeChat извршава у screen налепљивање текста у други screen прозор додаје ~0 и ~1 око текста?
+
+Узрок овоме је опција ограђеног налепљивања, која је подразумевано укључена, а screen је не обрађује како треба у осталим прозорима.
+
+Једноставно можете да искључите режим ограђеног налепљивања:
+
+----
+/set weechat.look.paste_bracketed off
+----
+
+[[small_terminal]]
+=== Како могу да прилагодим приказ на веома малој величини терминала (као што је 80x25), како се не би траћио простор?
+
+Можете да уклоните бочне траке (листу бафера и листу надимака), промените формат времена тако да се приказују само сати и секунде, искључите поравнање порука и поставите карактер за префикс/суфикс надимка:
+
+----
+/set buflist.look.enabled off
+/bar hide nicklist
+/set weechat.look.buffer_time_format "%H:%M"
+/set weechat.look.prefix_align none
+/set weechat.look.align_end_of_lines prefix
+/set weechat.look.nick_suffix ">"
+/set weechat.look.nick_prefix "<"
+----
+
+Терминал 80x25, са подразумеваном конфигурацијом:
+
+....
+┌────────────────────────────────────────────────────────────────────────────────┐
+│1.local │Welcome on WeeChat channel! │
+│ weechat │16:27:16 --> | FlashCode (~flashcode@localhost) │@FlashCode│
+│2. #weechat│ | has joined #weechat │ bob │
+│ │16:27:16 -- | Mode #weechat [+nt] by hades.arpa │ │
+│ │16:27:16 -- | Channel #weechat: 1 nick (1 op, 0 │ │
+│ │ | voices, 0 normals) │ │
+│ │16:27:18 -- | Channel created on Sun, 22 Mar │ │
+│ │ | 2020 16:27:16 │ │
+│ │17:02:28 --> | bob (~bob_user@localhost) has │ │
+│ │ | joined #weechat │ │
+│ │17:03:12 @FlashCode | hi bob, you're the first user │ │
+│ │ | here, welcome on the WeeChat │ │
+│ │ | support channel! │ │
+│ │17:03:33 bob | hi FlashCode │ │
+│ │ │ │
+│ │ │ │
+│ │ │ │
+│ │ │ │
+│ │ │ │
+│ │ │ │
+│ │ │ │
+│ │ │ │
+│ │ │ │
+│ │[17:04] [2] [irc/local] 2:#weechat(+nt){2} │
+│ │[@FlashCode(i)] █ │
+└────────────────────────────────────────────────────────────────────────────────┘
+....
+
+Терминал 80x25, након измена:
+
+....
+┌────────────────────────────────────────────────────────────────────────────────┐
+│Welcome on WeeChat channel! │
+│16:27 --> FlashCode (~flashcode@localhost) has joined #weechat │
+│16:27 -- Mode #weechat [+nt] by hades.arpa │
+│16:27 -- Channel #weechat: 1 nick (1 op, 0 voices, 0 normals) │
+│16:27 -- Channel created on Sun, 22 Mar 2020 16:27:16 │
+│17:02 --> bob (~bob_user@localhost) has joined #weechat │
+│17:03 <@FlashCode> hi bob, you're the first user here, welcome on the WeeChat │
+│ support channel! │
+│17:03 <bob> hi FlashCode │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│[17:04] [2] [irc/local] 2:#weechat(+nt){2} │
+│[@FlashCode(i)] █ │
+└────────────────────────────────────────────────────────────────────────────────┘
+....
+
+[[key_bindings]]
+== Тастерске пречице
+
+[[meta_keys]]
+=== Неки meta тастери (alt + тастер) не функционишу, зашто?
+
+Ако користите неке терминале као што су xterm или uxterm, неки meta тастери подразумевано не функционишу. Можете додати линију у фајл _~/.Xresources_:
+
+* За xterm:
+----
+XTerm*metaSendsEscape: true
+----
+* За uxterm:
+----
+UXTerm*metaSendsEscape: true
+----
+
+Па да поново учитате ресурсе (`xrdb -override ~/.Xresources`) или поново покренете X.
+
+Ако користите macOS Terminal апликацију, укључите опцију „Use option as meta key” у менију Settings/Keyboard након чега можете користити тастер kbd:[Option] као meta тастер.
+
+[[customize_key_bindings]]
+=== Како могу да прилагодим тастерске пречице?
+
+Тастерске пречице можете да прилагодите командом `/key`.
+
+Подразумевани тастер kbd:[Alt+k] вам омогућава да покупите кôд и убаците га у командн линију.
+
+[[jump_to_buffer_11_or_higher]]
+=== Којим тастером се скаче на бафер 11 (или неки вечи број)?
+
+Тастер је kbd:[Alt+j] па затим 2 цифре, на пример kbd:[Alt+j], kbd:[1], kbd:[1] ако желите да скочите на бафер 11.
+
+Можете и да вежете тастер, на пример:
+
+----
+/key bind meta-q /buffer *11
+----
+
+Листа подразумеваних тастера је у link:weechat_user.sr.html#key_bindings[Корисничко упутство / Тастерске пречице].
+
+Ако желите да скочите на бафере са бројем ≥ 100, можете да дефинишете окидач па да онда користите команде као што је `/123` за скок на бафер #123:
+
+----
+/trigger add numberjump modifier "2000|input_text_for_buffer" "${tg_string} =~ ^/[0-9]+$" "=\/([0-9]+)=/buffer *${re:1}=" "" "" "none"
+----
+
+[[global_history]]
+=== Како да се тастерима горе и доле користи глобална историја (уместо историје бафера)?
+
+Можете да вежете тастере горе и доле за глобалну историју (подразумевани тастери за глобалну историју су kbd:[Ctrl+↑] и kbd:[Ctrl+↓]).
+
+Пример:
+
+----
+/key bind meta2-A /input history_global_previous
+/key bind meta2-B /input history_global_next
+----
+
+[NOTE]
+Тастери „meta2-A” и „meta2-B” могу бити различити на вашем терминалу. Да бисте пронашли кôд тастера, притисните kbd:[Alt+k] па онда тастер.
+
+[[mouse]]
+== Миш
+
+[[mouse_not_working]]
+=== Миш уопште не функционише, шта да радим?
+
+Миш се подржава у верзијама програма WeeChat ≥ 0.3.6.
+
+Најпре покушајте да укључите миша:
+
+----
+/mouse enable
+----
+
+Ако миш и након тога не ради, проверите вредност променљиве TERM у вашем командном окружењу, (погледајте излаз `echo $TERM` у терминалу). У зависности од тога који terminfo се користи, миш можда није подржан.
+
+Подршку за миша можете тестирати у терминалу са:
+
+----
+$ printf '\033[?1002h'
+----
+
+па затим кликните на први карактер терминала (горњи леви). Требало би да видите „ !!#!!”.
+
+Ако желите да искључите употребу миша у терминалу:
+
+----
+$ printf '\033[?1002l'
+----
+
+[[mouse_coords]]
+=== Миш не ради ништа за X или Y веће од 94 (или 222), зашто?
+
+Неки терминали за координате миша шаљу само ISO карактере, а они не функционишу за X/Y веће од 94 (или 222).
+
+Требало би да користите терминал који подржава UTF-8 координате за миша, као што је rxvt-unicode.
+
+[[mouse_select_paste]]
+=== Како могу у терминалу да изаберем или налепим текст када је у програму WeeChat укључен миш?
+
+Када је у програму WeeChat укључен миш, за избор можете да користите модификатор kbd:[Shift] или клик у терминалу, као да је миш искључен (на неким терминалима као што је iTerm, морате да користите kbd:[Alt] уместо kbd:[Shift]).
+
+[[irc]]
+== IRC
+
+[[irc_ssl_connection]]
+=== Имам проблеме са повезивањем на сервер преко SSL, шта може да се уради?
+
+Ако користите macOS, морате инсталирати `openssl` из Homebrew. CA фајл ће се добавити употребом сертификата из системског свежња кључева.
+
+У програму WeeChat ≤ 3.1, онда можете да поставите путању до системских сертификата:
+
+----
+/set weechat.network.gnutls_ca_file "/usr/local/etc/openssl/cert.pem"
+----
+
+Ако добијате грешке у вези gnutls руковања, можете покушати са мањим Дифи-Хелман кључем (подразумевани је дужине 2048):
+
+----
+/set irc.server.example.ssl_dhkey_size 1024
+----
+
+Ако видите грешке у вези сертификата, можете да искључите „ssl_verify” (али будите веома опрезни, због овога су везе мање безбедне):
+
+----
+/set irc.server.example.ssl_verify off
+----
+
+Ако сервер поседује неважећи сертификат, а знате какав би он требало да буде, можете да наведете отисак (SHA-512, SHA-256 или SHA-1):
+
+----
+/set irc.server.example.ssl_fingerprint 0c06e399d3c3597511dc8550848bfd2a502f0ce19883b728b73f6b7e8604243b
+----
+
+[[irc_ssl_handshake_error]]
+=== Када се успоставља веза са сервером преко SSL, видим само грешку „TLS handshake failed”, шта да радим?
+
+Можете да покушате са другачијим стрингом приоритета (само WeeChat ≥ 0.3.5), замените „xxx” са именом вашег сервера:
+
+----
+/set irc.server.xxx.ssl_priorities "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.0:+VERS-SSL3.0:%COMPAT"
+----
+
+[[irc_ssl_libera]]
+=== Како да се повежем са libera сервером преко SSL?
+
+У WeeChat ≤ 3.1, поставите опцију _weechat.network.gnutls_ca_file_ на фајл са сертификатима:
+
+----
+/set weechat.network.gnutls_ca_file "/etc/ssl/certs/ca-certificates.crt"
+----
+
+Напомена: ако се програм извршава на macOS са инсталираним homebrew openssl, можете да урадите следеће:
+
+----
+/set weechat.network.gnutls_ca_file "/usr/local/etc/openssl/cert.pem"
+----
+
+[NOTE]
+Проверите да на свом систему имате овај фајл (обично га инсталира пакет „ca-certificates”).
+
+Поставите порт сервера, SSL, затим се повежите:
+
+----
+/set irc.server.libera.addresses "irc.libera.chat/6697"
+/set irc.server.libera.ssl on
+/connect libera
+----
+
+[[irc_oauth]]
+=== Како да се повежем са сервером који захтева „oauth”?
+
+Неки сервери као што је _twitch_ захтевају oauth за повезивање.
+
+oauth је једноставно лозинка која има вредност „oauth:XXXX”.
+
+Такав сервер можете да додате и да се повежете са њим користећи следеће команде (замените име и адресу са одговарајућим вредностима):
+
+----
+/server add име irc.server.org -password=oauth:XXXX
+/connect име
+----
+
+[[irc_sasl]]
+=== Како могу да се идентификујем пре приступа каналима?
+
+Ако сервер подржава SASL, требало би то да користите уместо да шаљете команду за nickserv аутентификацију, на пример:
+
+----
+/set irc.server.libera.sasl_username "mynick"
+/set irc.server.libera.sasl_password "xxxxxxx"
+----
+
+Ако сервер не подржава SASL, можете да додате кашњење (између команде и приступа каналима):
+
+----
+/set irc.server.libera.command_delay 5
+----
+
+[[edit_autojoin]]
+=== Како да додам/уклоним канале из autojoin опције?
+
+Можете да употребите команду `/set` и да уредите листу autojoin канала, на пример за „libera” сервер:
+
+----
+/set irc.server.libera.autojoin [TAB]
+----
+
+[NOTE]
+Можете да довршите име и вредност опције са kbd:[Tab] тастер (или kbd:[Shift+Tab] за делимично довршавање, корисно за име). + На овај начин не морате да откуцате комплетну листу канала.
+
+За уређивање листе канала можете да употребите и команду `/fset`:
+
+----
+/fset autojoin
+----
+
+Друго решење је да употребите скрипту:
+
+----
+/script search autojoin
+----
+
+[[ignore_vs_filter]]
+=== У чему је разлика између команди /ignore и /filter?
+
+Команда `/ignore` је IRC команда, тако да се примењује само на IRC бафере (сервере и канале). Она вам омогућава да игноришете неке надимке или имена хостова корисника сервера или канала (команда се не примењује на садржај порука). IRC додатак брише поруке које се подударају пре него што се прикажу (тако да их уопште нећете видети, а не могу ни да се врате уклањањем игнорисања).
+
+Команда `/filter` је команда језгра програма WeeChat, тако да се примењује на било који бафер. Помоћу ње можете да филтрирате неке линије у баферима са ознакама или регуларним изразом за префикс и садржај линије. Филтриране линије се само скривају, не бришу се, тако да их можете видети ако искључите филтере (тастер kbd:[Alt+=] подразумевано пребацује стање филтера).
+
+[[filter_irc_join_part_quit]]
+=== Како могу да филтрирам join/part/quit поруке на IRC каналима?
+
+Са паметним филтером (задржава join/part/quit од корисника који су недавно говорили):
+
+----
+/set irc.look.smart_filter on
+/filter add irc_smart * irc_smart_filter *
+----
+
+Са глобалним филтером (скрива *све* join/part/quit):
+
+----
+/filter add joinquit * irc_join,irc_part,irc_quit *
+----
+
+[NOTE]
+За помоћ: `/help filter`, `+/help irc.look.smart_filter+` и погледајте link:weechat_user.sr.html#irc_smart_filter_join_part_quit[Корисничко упутство / Паметни филтер за join/part/quit поруке].
+
+[[filter_irc_join_channel_messages]]
+=== Како да филтрирам неке поруке које се приказују када приступим IRC каналу?
+
+Са програмом WeeChat верзије ≥ 0.4.1, можете да изаберете које се поруке приказују приликом присупања каналу опцијом _irc.look.display_join_message_ (за више информација, погледајте `+/help irc.look.display_join_message+`).
+
+Ако желите да сакријете поруке (али да их задржите у баферу), можете да их филтрирате употребом ознаке (на пример _irc_329_ за датум креирања канала). За помоћ у вези филтера, погледајте `/help filter`.
+
+[[filter_voice_messages]]
+=== Како да филтрирам поруке корисника са правом гласа (нпр. на Bitlbee серверу)?
+
+Поруке корисника са правом гласа не могу једноставно да се филтрирају јер режим права гласа може да се постави заједно са осталим режимима у истој IRC поруци.
+
+Ако то желите да урадите, највероватнији разлог је што Bitlbee користи поруке корисника са правом гласа како би приказао одсутне кориснике, па вас затрпава порукама са правом гласа. Дакле, ово можете да измените и допустите да програм WeeChat користи специјалну боју за надимке у листи надимака који су одсутни.
+
+За Bitlbee ≥ 3, задајте следеће на контролном каналу _&bitlbee_:
+
+----
+channel set show_users online,away
+----
+
+За старије верзије програма Bitlbee, задајте следеће на контролном каналу _&bitlbee_:
+
+----
+set away_devoice false
+----
+
+За проверу одсутних надимака у програму WeeChat, погледајте питање у вези <<color_away_nicks,одсутних надимака>>.
+
+Ако заиста желите да филтрирате поруке корисника са правом гласа, можете употребити следећу команду, али она није савршена (радиће само ако је први промењени режим voice):
+
+----
+/filter add hidevoices * irc_mode (\+|\-)v
+----
+
+[[color_away_nicks]]
+=== Како у листи надимака могу да видим одсутне надимке?
+
+Морате да поставите опцију _irc.server_default.away_check_ на позитивну вредност (број минута између провера на одсутне надимке).
+
+Ако желите да проверу одсутности ограничите само на мале канале, поставите опцију _irc.server_default.away_check_max_nicks_.
+
+На пример, ако желите да се провера на одсутност надимака врши сваких 5 минута, за канале са макс 24 надимака:
+
+----
+/set irc.server_default.away_check 5
+/set irc.server_default.away_check_max_nicks 25
+----
+
+[NOTE]
+У WeeChat ≤ 0.3.3, опције су _irc.network.away_check_ и _irc.network.away_check_max_nicks_.
+
+[[highlight_notification]]
+=== Како могу да добијем упозорење када ме неко означи (истакне) на каналу?
+
+У програму WeeChat верзије ≥ 1.0, постоји подразумевани окидач „beep” који шаље _BEL_ терминалу када се догоди истицање или стигне приватна порука. Тако да свој терминал (или мултиплексер као што је screen/tmux) можете подесити да изврши команду или да одсвира звук када прими _BEL_.
+
+Или можете да додате команду у „beep” окидач:
+
+----
+/set trigger.trigger.beep.command "/print -beep;/exec -bg /путања/до/команде аргументи"
+----
+
+У старијим верзијама програма WeeChat, можете да употребите скрипту као што је _beep.pl_ или _launcher.pl_.
+
+За _launcher.pl_, морате да подесите команду:
+
+----
+/set plugins.var.perl.launcher.signal.weechat_highlight "/путања/до/команде аргументи"
+----
+
+Остале скрипте на ову тему:
+
+----
+/script search notify
+----
+
+[[disable_highlights_for_specific_nicks]]
+=== Како могу да искључим истицање за одређене надимке?
+
+У програму WeeChat верзије ≥ 0.3.4 можете да употребите link:weechat_user.sr.html#max_hotlist_level_nicks[hotlist_max_level_nicks_add] особину бафера да поставите максимални ниво вруће листе за неке надимке, за сваки бафер посебно, или за групу бафера (као што су IRC сервери).
+
+Ако само желите да искључите истицања, треба да је поставите на 2:
+
+----
+/buffer set hotlist_max_level_nicks_add joe:2,mike:2
+----
+
+Међутим, ова особина бафера се не чува у конфигурацији. Ако желите да се ове особине бафера аутоматски поново примене, биће вам потребна скрипта _buffer_autoset.py_:
+
+----
+/script install buffer_autoset.py
+----
+
+На пример, ако за стално желите да искључите истицања од надимка „mike” са #weechat на IRC серверу libera:
+
+----
+/buffer_autoset add irc.libera.#weechat hotlist_max_level_nicks_add mike:2
+----
+
+Ако уместо овога желите да се примени на комплетан libera сервер:
+
+----
+/buffer_autoset add irc.libera hotlist_max_level_nicks_add mike:2
+----
+
+За још примера, погледајте `+/help buffer_autoset+`.
+
+[[irc_target_buffer]]
+=== Како могу да променим циљни бафер за команде над спојеним баферима (као што је бафер са серверима)?
+
+Подразумевани тастер је kbd:[Ctrl+x] (команда је: `+/input switch_active_buffer+`).
+
+[[plugins_scripts]]
+== Додаци / скрипте
+
+[[openbsd_plugins]]
+=== Користим OpenBSD и програм WeeChat уопште не учитава додатке, шта није у реду?
+
+Под OpenBSD, имена фајлова додатака се завршавају са „.so.0.0” („.so” за Linux).
+
+То морате да подесите:
+
+----
+/set weechat.plugin.extension ".so.0.0"
+/plugin autoload
+----
+
+[[install_scripts]]
+=== Како могу да инсталирам скрипте? Да ли су скрипте компатибилне са осталим IRC клијентима?
+
+У програму WeeChat верзије ≥ 0.3.9 можете да користите команду `/script` за инсталирање и управљање скриптама (за помоћ погледајте `/help script`script). За старије верзије постоје скрипте weeget.py и script.pl.
+
+Скрипте нису компатибилне са осталим IRC клијентима.
+
+[[scripts_update]]
+=== Команда „/script update” не може да чита скрипте, како да то поправим?
+
+Најпре погледајте питање у вези SSL везе у овом ЧПП.
+
+Ако још увек не функционише, покушајте ручно да обришете фајл са скриптама (из свог командног окружења):
+
+----
+$ rm ~/.cache/weechat/script/plugins.xml.gz
+----
+
+[NOTE]
+У програму WeeChat ≤ 3.1, путања би требало да буде: _~/.weechat/script/plugins.xml.gz_.
+
+Па у програму WeeChat поново ажурирајте скрипте:
+
+----
+/script update
+----
+
+Ако још увек наилазите на грешку, онда морате да искључите аутоматско ажурирање фајла у програму WeeChat и да ручно преузмете фајл ван програма WeeChat (то значи да ћете фајл морати ручно да ажурирате онда када желите да добијете ажурирања):
+
+* у програму WeeChat:
+
+----
+/set script.scripts.cache_expire -1
+----
+
+* у вашем командном окружењу, са инсталираним програмом curl:
+
+----
+$ cd ~/.cache/weechat/script
+$ curl -O https://weechat.org/files/plugins.xml.gz
+----
+
+[[spell_dictionaries]]
+=== Инсталирао сам aspell речнике у свој систем, како могу да их користим без потребе да поново покрећем програм WeeChat?
+
+Морате поново да учитате spell додатак:
+
+----
+/plugin reload spell
+----
+
+[NOTE]
+У програму WeeChat верзије ≤ 2.4, „spell” додатак се звао „aspell”, тако да је команда: `/plugin reload aspell`.
+
+[[settings]]
+== Подешавања
+
+[[editing_config_files]]
+=== Могу ли ручно да уређујем конфигурационе (*.conf) фајлове?
+
+Можете, али се то *НЕ* препоручује.
+
+У програму WeeChat се препоручује команда `/set`:
+
+* Име и вредност опције можете да довршите тастером kbd:[Tab] (или kbd:[Shift+Tab] за делимично довршавање, корисно за име).
+* Вредност се проверава, у случају грешке се исписује порука.
+* Вредност се користи тренутно, нема потребе да се било што поново покреће.
+
+Ако и даље желите да фајлове уређујете ручно, требало би да будете пажљиви:
+
+* Ако као вредност опције поставите неважећу вредност, програм WeeChat ће приликом учитавања да испише грешку и одбациће вредност (користиће се подразумевана вредност те опције).
+* Ако се програм WeeChat извршава, мораћете да извршите команду `/reload`, а ако су нека подешавања промењена и нису сачувана командом `/save`, изгубићете их.
+
+[[memory_usage]]
+=== Како да подесим програм WeeChat тако да троши мање меморије?
+
+Ако желите да програм троши мање меморије, следите следеће савете:
+
+* Користите последњу стабилну верзију (требало би да има мање цурења меморије од старијих верзија).
+* Не учитавајте додатке које заиста и не користите, на пример: buflist, fifo, logger, perl, python, ruby, lua, tcl, guile, javascript, php, spell, xfer (користи се за DCC). Погледајте `/help weechat.plugin.autoload`.
+* Учитавајте само скрипте које су вам заста неопходне.
+* Не учитавајте системске сертификате ако се SSL *НЕ* користи: искључите следећу опцију: _weechat.network.gnutls_ca_system.
+* Смањите вредност опције _weechat.history.max_buffer_lines_number_ или поставите вредност опције _weechat.history.max_buffer_lines_minutes_.
+* Смањите вредност опције _weechat.history.max_commands_.
+
+[[cpu_usage]]
+=== Како да подесим програм WeeChat тако да мање оптерећује CPU?
+
+Можете да следите исте савете као за <<memory_usage,меморију>>, као и следеће:
+
+* Сакријте „nicklist” траку: `/bar hide nicklist`.
+* Уклоните приказ секунди из времена у статусној траци: `+/set weechat.look.item_time_format "%H:%M"+` (ово је и подразумевана вредност).
+* Искључите проверу неисправно написаних речи у командној линији у реалном времену (ако сте је укључили): `+/set spell.check.real_time off+`.
+* Поставите променљиву _TZ_ (на пример: `export TZ="Europe/Paris"`), тиме спречавате чест приступ фајлу _/etc/localtime_.
+
+[[security]]
+=== Имам параноју у вези безбедности, која подешавања би требало да изменим како би програм постао још сигурнији?
+
+Искључите IRC part и quit поруке:
+
+----
+/set irc.server_default.msg_part ""
+/set irc.server_default.msg_quit ""
+----
+
+Искључите одговоре на све CTCP упите:
+
+----
+/set irc.ctcp.clientinfo ""
+/set irc.ctcp.finger ""
+/set irc.ctcp.source ""
+/set irc.ctcp.time ""
+/set irc.ctcp.userinfo ""
+/set irc.ctcp.version ""
+/set irc.ctcp.ping ""
+----
+
+Уклоните из меморије и искључите ауто учитавање „xfer” додатка (користи се за IRC DCC):
+
+----
+/plugin unload xfer
+/set weechat.plugin.autoload "*,!xfer"
+----
+
+Дефинишите тајну реченицу и где год можете користите обезбеђене податке за осетљиве ствари као што су лозинке: погледајте `/help secure` и `/help` за опције (ако можете да користите обезбеђене податке, написано је у помоћи). Погледајте такође link:weechat_user.sr.html#secured_data[Корисничко упутство / Обезбеђени подаци].
+
+На пример:
+
+----
+/secure passphrase xxxxxxxxxx
+/secure set libera_username корисничкоиме
+/secure set libera_password xxxxxxxx
+/set irc.server.libera.sasl_username "${sec.data.libera_username}"
+/set irc.server.libera.sasl_password "${sec.data.libera_password}"
+----
+
+[[sharing_config_files]]
+=== Желим да делим своју WeeChat конфигурацију, које фајлови би требало да делим, а шта би требало да оставим приватно?
+
+Можете да делите све конфигурационе фајлове _*.conf_ осим фајла _sec.conf_, јер он садржи лозинке шифроване вашом тајном реченицом.
+
+И неки други фајлови могу да садрже осетљиве осетљиве информације као што су лозинке (у случају да нису сачуване у _sec.conf_ командом `/secure`).
+
+Погледајте link:weechat_user.sr.html#files_and_directories[Корисничко упутство / Фајлови и директоријуми] за више информација о конфигурационим фајловима.
+
+[[development]]
+== Развој
+
+[[bug_task_patch]]
+=== Како би требало да пријавим багове, тражим нове могућности, или пошаљем закрпе?
+
+Погледајте: https://weechat.org/about/support
+
+[[gdb_error_threads]]
+=== Када програм WeeChat покренем под gdb, појави се грешка везана за нити, шта могу да урадим?
+
+Када програм WeeChat покренете под gdb, можете добити следећу грешку:
+
+----
+$ gdb /путања/до/програма/weechat
+(gdb) run
+[Thread debugging using libthread_db enabled]
+Cannot find new threads: generic error
+----
+
+Да бисте ово исправили, покрените gdb овом командом (замените путању до libpthread и WeeChat са путањама на вашем систему):
+
+----
+$ LD_PRELOAD=/lib/libpthread.so.0 gdb /путања/до/програма/weechat
+(gdb) run
+----
+
+[[supported_os]]
+=== Како изгледа листа платформи које подржава програм WeeChat? Да ли ће се портовати на друге оперативне системе?
+
+WeeChat се лепо извршава на већини Linux/BSD дистрибуција, GNU/Hurd, Mac OS и Windows (Cygwin и Windows Subsystem for Linux).
+
+Чинимо што год можемо како би се извршавао на што више различитих платформи. Потребна нам је помоћ око неких ОС које не поседујемо, како би могли да тестирамо програм WeeChat.
+
+[[help_developers]]
+=== Желим да помогнем програмерима који развијају програм WeeChat. Како да то учиним?
+
+Постоји много задатака који могу да се ураде (тестирање, програмирање, документација, итд.)
+
+Молимо вас да нас контактирате преко IRC или имејла, погледајте страну о подршки: https://weechat.org/about/support
+
+[[donate]]
+=== Могу ли програмерима програма WeeChat да дам новац или нешто друго?
+
+Можете нам донирати новац као подршку развоја. Детаљи се налазе на страници https://weechat.org/donate
diff --git a/doc/sr/weechat_plugin_api.sr.adoc b/doc/sr/weechat_plugin_api.sr.adoc
new file mode 100644
index 000000000..06fb60e93
--- /dev/null
+++ b/doc/sr/weechat_plugin_api.sr.adoc
@@ -0,0 +1,17385 @@
+= WeeChat референтни приручник API додатака
+:author: Sébastien Helleu
+:email: flashcode@flashtux.org
+:lang: sr
+:toc: left
+:toclevels: 4
+:toc-title: Садржај
+:sectnums:
+:sectnumlevels: 3
+:docinfo1:
+
+
+Ово упутство описује WeeChat чет клијент и део је програма WeeChat.
+
+Последња верзија овог документа може да се нађе на следећој страници: https://weechat.org/doc
+
+
+[[introduction]]
+== Увод
+
+WeeChat (Wee Enhanced Environment for Chat) је бесплатни чет клијент, једноставан и брз, дизајниран за многе оперативне системе.
+
+Ово упутство документује API додатака програма WeeChat, који за интеракцију са WeeChat језгром користе C додаци.
+
+[[plugins_in_weechat]]
+== Додаци у програму WeeChat
+
+Додатак је C програм који може да позива функције програма WeeChat дефинисане у интерфејсу.
+
+Овом C програму нису потребни WeeChat изворни фајлови да би се компајлирао и може динамички да се учита у програм WeeChat командом `/plugin`.
+
+Додатак мора да буде динамичка библиотека, коју оперативни систем динамички учитава. Под GNU/Linux, фајл има „.so” екстензију, а „.dll” под системом Windows.
+
+Додатак мора да укључи фајл „weechat-plugin.h” (који се налази у изворном коду програма WeeChat). Овај фајл дефинише структуре и типове који се користе за комуникацију са програмом WeeChat.
+
+Да бисте позивали функције програма WeeChat у формату који је приказан у <<plugin_api>>, у функцији <<_weechat_plugin_init,weechat_plugin_init>> морате декларисати и иницијализовати следећи глобални показивач:
+
+[source, C]
+----
+struct t_weechat_plugin *weechat_plugin;
+----
+
+[[macros]]
+=== Макрои
+
+Додатак мора да користи неке макрое (за дефиницију неких променљивих):
+
+WEECHAT_PLUGIN_NAME("име")::
+ име додатка
+
+WEECHAT_PLUGIN_DESCRIPTION("опис")::
+ кратак опис додатка
+
+WEECHAT_PLUGIN_VERSION("1.0")::
+ верзија додатка plugin version
+
+WEECHAT_PLUGIN_LICENSE("GPL3")::
+ лиценца додатка
+
+WEECHAT_PLUGIN_PRIORITY(1000)::
+ приоритет додатка (није обавезно, погледајте испод)
+
+[[main_functions]]
+=== Главне функције
+
+Додатак мора да користи две функције:
+
+* weechat_plugin_init
+* weechat_plugin_end
+
+==== weechat_plugin_init
+
+Ова функција се позива када програм WeeChat учита додатак.
+
+Прототип:
+
+[source, C]
+----
+int weechat_plugin_init (struct t_weechat_plugin *plugin,
+ int argc, char *argv[]);
+----
+
+Аргументи:
+
+* _plugin_: показивач на структуру додатка програма WeeChat, користи се за иницијализацију погодног глобалног показивача `+weechat_plugin+`
+* _argc_: број аргумената за додатак
+* _argv_: аргументи за додатак (погледајте испод)
+
+Повратна вредност:
+
+* _WEECHAT_RC_OK_ ако је успешно (додатак ће се учитати)
+* _WEECHAT_RC_ERROR_ ако је дошло до грешке (додатак се НЕЋЕ учитати)
+
+[[plugin_arguments]]
+===== Аргументи додатка
+
+Када програм WeeChat учита додатак, он прима листу аргумената у параметру `argv` и број аргумената у `argc`.
+
+Аргументи могу бити:
+
+* аргументи командне линије када се покреће WeeChat бинарни фајл,
+* аргументи дати команди `/plugin load xxx`, када корисник ручно учитава додатак.
+
+Када аргументи долазе из командне линије, додатку се прослеђују само следећи аргументи:
+
+*-a*, *--no-connect*::
+ Искључује ауто повезивање са серверима током покретања програма WeeChat.
+
+*-s*, *--no-script*::
+ Искључује ауто учитавање скрипти.
+
+*додатак:опција*::
+ Опције за додатак: шаљу се само опције у вези додатка, на пример додатку „irc” се шаљу само опције које почињу на `irc:`.
+
+[[plugin_priority]]
+===== Приоритет додатка
+
+Када се додаци аутоматски учитавају (на пример, током покретања), програм WeeChat најпре учитава све додатке, па затим позива _init_ функције, користећи приоритет дефинисан у сваком додатку. Висок приоритет значи да се _init_ функција прва позива.
+
+Подразумевани приоритет је 1000 (са тим приоритетом, додатак се учитава након свих подразумеваних додатака).
+
+Подразумевани додаци програма WeeChat се иницијализују у следећем редоследу:
+
+include::includes/autogen_api_plugins_priority.sr.adoc[tag=plugins_priority]
+
+==== weechat_plugin_end
+
+Ова функција се позива када програм WeeChat уклони додатак из меморије.
+
+Прототип:
+
+[source, C]
+----
+int weechat_plugin_end (struct t_weechat_plugin *plugin);
+----
+
+Аргументи:
+
+* _plugin_: показивач на структуру додатка програма WeeChat
+
+Повратна вредност:
+
+* _WEECHAT_RC_OK_ ако је успешно
+* _WEECHAT_RC_ERROR_ ако је дошло до грешке
+
+[[compile_plugin]]
+=== Компајлирање додатка
+
+Компајлирање не захтева WeeChat изворне фајлове, неопходан је само фајл _weechat-plugin.h_.
+
+Да бисте компајлирали додатак који има само један фајл „toto.c” (на систему GNU/Linux):
+
+----
+$ gcc -fPIC -Wall -c toto.c
+$ gcc -shared -fPIC -o toto.so toto.o
+----
+
+[[load_plugin]]
+=== Учитавање додатка
+
+Копирајте фајл _toto.so_ у системски директоријум додатака (на пример _/usr/local/lib/weechat/plugins_) или у корисников директоријум додатака (на пример _/home/user/.local/share/weechat/plugins_).
+
+У програму WeeChat:
+
+----
+/plugin load toto
+----
+
+[[plugin_example]]
+=== Пример додатка
+
+Комплетан пример додатка који обезбеђује команду `/double`: приказује аргументе два пута у текућем баферу, или два пута извршава команду (ОК, то и није баш нешто корисно, али ово је само пример!):
+
+[source, C]
+----
+#include <stdlib.h>
+
+#include "weechat-plugin.h"
+
+WEECHAT_PLUGIN_NAME("double");
+WEECHAT_PLUGIN_DESCRIPTION("Test plugin for WeeChat");
+WEECHAT_PLUGIN_AUTHOR("Sébastien Helleu <flashcode@flashtux.org>");
+WEECHAT_PLUGIN_VERSION("0.1");
+WEECHAT_PLUGIN_LICENSE("GPL3");
+
+struct t_weechat_plugin *weechat_plugin = NULL;
+
+
+/* функција повратног позива за команду "/double" */
+
+int
+command_double_cb (const void *pointer, void *data,
+ struct t_gui_buffer *buffer,
+ int argc, char **argv, char **argv_eol)
+{
+ /* усрећите C компајлер */
+ (void) pointer;
+ (void) data;
+ (void) buffer;
+ (void) argv;
+
+ if (argc > 1)
+ {
+ weechat_command (NULL, argv_eol[1]);
+ weechat_command (NULL, argv_eol[1]);
+ }
+
+ return WEECHAT_RC_OK;
+}
+
+int
+weechat_plugin_init (struct t_weechat_plugin *plugin,
+ int argc, char *argv[])
+{
+ weechat_plugin = plugin;
+
+ weechat_hook_command ("double",
+ "Display two times a message "
+ "or execute two times a command",
+ "message | command",
+ "message: message to display two times\n"
+ "command: command to execute two times",
+ NULL,
+ &command_double_cb, NULL, NULL);
+
+ return WEECHAT_RC_OK;
+}
+
+int
+weechat_plugin_end (struct t_weechat_plugin *plugin)
+{
+ /* усрећите C компајлер */
+ (void) plugin;
+
+ return WEECHAT_RC_OK;
+}
+----
+
+[[plugin_api]]
+== API додатака
+
+Поглавља која следе описују функције у API, сортиране по категорији.
+
+За сваку функцију, дајемо:
+
+* опис функције,
+* C прототип,
+* детаље аргумената,
+* повратну вредност
+* C пример,
+* пример у Python скрипти (синтакса за остале скрипт језике је слична).
+
+[[registering]]
+=== Регистрација
+
+Функције за регистрацију скрипте: користе се само у API скриптовања, не у C API.
+
+==== register
+
+Регистрација скрипте.
+
+За више информација, погледајте link:weechat_plugin_api.sr.html[WeeChat водич за скриптовање].
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def register(name: str, author: str, version: str, license: str, description: str, shutdown_function: str, charset: str) -> int: ...
+----
+
+[NOTE]
+Ова функција не постоји у C API.
+
+[[plugins]]
+=== Додаци
+
+Функције које враћају инфо о додацима.
+
+==== plugin_get_name
+
+Враћа име додатка.
+
+Прототип:
+
+[source, C]
+----
+const char *weechat_plugin_get_name (struct t_weechat_plugin *plugin);
+----
+
+Аргументи:
+
+* _plugin_: показивач на структуру WeeChat додатка (може бити NULL)
+
+Повратна вредност:
+
+* име додатка, „core” за језгро програма WeeChat (ако је показивач на додатак NULL)
+
+C пример:
+
+[source, C]
+----
+const char *name = weechat_plugin_get_name (plugin);
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def plugin_get_name(plugin: str) -> str: ...
+
+# пример
+plugin = weechat.buffer_get_pointer(weechat.current_buffer(), "plugin")
+name = weechat.plugin_get_name(plugin)
+----
+
+[[strings]]
+=== Стрингови
+
+Многе стринг функције наведене испод су већ доступне кроз стандардне C функције, али се препоручује да користите функције у овом API јер су оне безбедне за UTF-8 и локал.
+
+==== charset_set
+
+Поставља нови скуп карактера додатка (подразумевани скуп карактера је _UTF-8_, тако да ако ваш додатак користи _UTF-8_, нема потребе да позивате ову функцију).
+
+Прототип:
+
+[source, C]
+----
+void weechat_charset_set (const char *charset);
+----
+
+Аргументи:
+
+* _charset_: нови скуп карактера који желите да користите
+
+C пример:
+
+[source, C]
+----
+weechat_charset_set ("iso-8859-1");
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def charset_set(charset: str) -> int: ...
+
+# пример
+weechat.charset_set("iso-8859-1")
+----
+
+==== iconv_to_internal
+
+Конвертује стринг у интерни скуп карактера програма WeeChat (UTF-8).
+
+Прототип:
+
+[source, C]
+----
+char *weechat_iconv_to_internal (const char *charset, const char *string);
+----
+
+Аргументи:
+
+* _charset_: скуп карактера који се конвертује
+* _string_: стринг који се конвертује
+
+Повратна вредност:
+
+* конвертовани стринг (након употребе мора да се ослободи позивом „free”)
+
+C пример:
+
+[source, C]
+----
+char *str = weechat_iconv_to_internal ("iso-8859-1", "iso string: é à");
+/* ... */
+free (str);
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def iconv_to_internal(charset: str, string: str) -> str: ...
+
+# пример
+str = weechat.iconv_to_internal("iso-8859-1", "iso string: é à")
+----
+
+==== iconv_from_internal
+
+Конвертује стринг из интерног скупа карактера програма WeeChat (UTF-8) у неки други.
+
+Прототип:
+
+[source, C]
+----
+char *weechat_iconv_from_internal (const char *charset, const char *string);
+----
+
+Аргументи:
+
+* _charset_: циљни скуп карактера
+* _string_: стринг који се конвертује
+
+Повратна вредност:
+
+* конвертовани стринг (након употребе мора да се ослободи позивом „free”)
+
+C пример:
+
+[source, C]
+----
+char *str = weechat_iconv_from_internal ("iso-8859-1", "utf-8 string: é à");
+/* ... */
+free (str);
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def iconv_from_internal(charset: str, string: str) -> str: ...
+
+# пример
+str = weechat.iconv_from_internal("iso-8859-1", "utf-8 string: é à")
+----
+
+==== gettext
+
+Враћа преведени стринг (зависно од локалног језика).
+
+Прототип:
+
+[source, C]
+----
+const char *weechat_gettext (const char *string);
+----
+
+Аргументи:
+
+* _string_: стринг који треба да се преведе
+
+Повратна вредност:
+
+* преведени стринг или _string_ ако не постоји превод на локални језик
+
+C пример:
+
+[source, C]
+----
+char *str = weechat_gettext ("hello");
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def gettext(string: str) -> str: ...
+
+# пример
+str = weechat.gettext("hello")
+----
+
+==== ngettext
+
+Враћа преведени стринг користећи једнину или облик множине, зависно од аргумента _count_.
+
+Прототип:
+
+[source, C]
+----
+const char *weechat_ngettext (const char *string, const char *plural,
+ int count);
+----
+
+Аргументи:
+
+* _string_: стринг који треба да се преведе, у облику једнине
+* _plural_: стринг који треба да се преведе, у облику множине
+* _count_: користи се за избор између једнине и облика множине (избор се врши сагласно са локалним језиком)
+
+Повратна вредност:
+
+* преведени стринг или _string_ / _plural_ ако се не постоји превод на локални језик
+
+C пример:
+
+[source, C]
+----
+char *str = weechat_ngettext ("file", "files", num_files);
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def ngettext(string: str, plural: str, count) -> str: ...
+
+# пример
+num_files = 2
+str = weechat.ngettext("file", "files", num_files)
+----
+
+==== strndup
+
+Враћа дуплирани стринг, са макс _length_ карактера.
+
+Прототип:
+
+[source, C]
+----
+char *weechat_strndup (const char *string, int length);
+----
+
+Аргументи:
+
+* _string_: стринг који се дуплира
+* _length_: макс број карактера који може да се дуплира
+
+Повратна вредност:
+
+* дуплирани стринг (након употребе мора да се ослободи позивом „free”)
+
+C пример:
+
+[source, C]
+----
+char *str = weechat_strndup ("abcdef", 3); /* резултат: „abc” */
+/* ... */
+free (str);
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== string_tolower
+
+Конвертује UTF-8 стринг у мала слова.
+
+Прототип:
+
+[source, C]
+----
+void weechat_string_tolower (char *string);
+----
+
+Аргументи:
+
+* _string_: стринг који се конвертује
+
+C пример:
+
+[source, C]
+----
+char str[] = "AbCdé";
+weechat_string_tolower (str); /* str је сада: „abcdé” */
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== string_toupper
+
+Конвертује UTF-8 стринг у велика слова.
+
+Прототип:
+
+[source, C]
+----
+void weechat_string_toupper (char *string);
+----
+
+Аргументи:
+
+* _string_: стринг који се конвертује
+
+C пример:
+
+[source, C]
+----
+char str[] = "AbCdé";
+weechat_string_toupper (str); /* str је сада: „ABCDé” */
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== strcasecmp
+
+_Ажурирано у верзији 1.0._
+
+Поређење стрингова независно од величине слова и локал подешавања.
+
+Прототип:
+
+[source, C]
+----
+int weechat_strcasecmp (const char *string1, const char *string2);
+----
+
+Аргументи:
+
+* _string1_: први стринг за поређење
+* _string2_: други стринг за поређење
+
+Повратна вредност:
+
+* -1 ако је string1 < string2
+* 0 ако је string1 == string2
+* 1 ако је string1 > string2
+
+C пример:
+
+[source, C]
+----
+int diff = weechat_strcasecmp ("aaa", "CCC"); /* == -2 */
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== strcasecmp_range
+
+_WeeChat ≥ 0.3.7, ажурирано у верзији 1.0._
+
+Поређење стрингова независно од величине слова и локал подешавања, употребом опсега за поређење величине слова.
+
+Прототип:
+
+[source, C]
+----
+int weechat_strcasecmp_range (const char *string1, const char *string2, int range);
+----
+
+Аргументи:
+
+* _string1_: први стринг за поређење
+* _string2_: други стринг за поређење
+* _range_: број карактера у поређењу по величини слова, на пример:
+** 26: `+A-Z+` се постављају на `+a-z+`
+** 29: `+A-Z [ \ ]+` се постављају на `+a-z { | }+`
+** 30: `+A-Z [ \ ] ^+` се постављају на `+a-z { | } ~+`
+
+[NOTE]
+Вредности 29 и 30 користе неки протоколи, као што је IRC.
+
+Повратна вредност:
+
+* -1 ако је string1 < string2
+* 0 ако је string1 == string2
+* 1 ако је string1 > string2
+
+C пример:
+
+[source, C]
+----
+int diff = weechat_strcasecmp_range ("nick{away}", "NICK[away]", 29); /* == 0 */
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== strncasecmp
+
+_Ажурирано у верзији 1.0._
+
+Поређење стрингова независно од величине слова и локал подешавања, за _max_ карактера.
+
+Прототип:
+
+[source, C]
+----
+int weechat_strncasecmp (const char *string1, const char *string2, int max);
+----
+
+Аргументи:
+
+* _string1_: први стринг за поређење
+* _string2_: други стринг за поређење
+* _max_: максимални број карактера који се пореде
+
+Повратна вредност:
+
+* -1 ако је string1 < string2
+* 0 ако је string1 == string2
+* 1 ако је string1 > string2
+
+C пример:
+
+[source, C]
+----
+int diff = weechat_strncasecmp ("aabb", "aacc", 2); /* == 0 */
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== strncasecmp_range
+
+_WeeChat ≥ 0.3.7, ажурирано у верзији 1.0._
+
+Поређење стрингова независно од величине слова и локал подешавања, за _max_ карактера, користећи опсег за поређење величине слова.
+
+Прототип:
+
+[source, C]
+----
+int weechat_strncasecmp_range (const char *string1, const char *string2, int max, int range);
+----
+
+Аргументи:
+
+* _string1_: први стринг за поређење
+* _string2_: други стринг за поређење
+* _max_: максимални број карактера који се пореде
+* _range_: број карактера у поређењу по величини слова, на пример:
+** 26: `+A-Z+` се постављају на `+a-z+`
+** 29: `+A-Z [ \ ]+` се постављају на `+a-z { | }+`
+** 30: `+A-Z [ \ ] ^+` се постављају на `+a-z { | } ~+`
+
+[NOTE]
+Вредности 29 и 30 користе неки протоколи, као што је IRC.
+
+Повратна вредност:
+
+* -1 ако је string1 < string2
+* 0 ако је string1 == string2
+* 1 ако је string1 > string2
+
+C пример:
+
+[source, C]
+----
+int diff = weechat_strncasecmp_range ("nick{away}", "NICK[away]", 6, 29); /* == 0 */
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== strcmp_ignore_chars
+
+_Ажурирано у верзији 1.0._
+
+Поређење стрингова према локал подешавању (и необавезно независно од величине слова), уз игнорисање неких карактера.
+
+Прототип:
+
+[source, C]
+----
+int weechat_strcmp_ignore_chars (const char *string1, const char *string2,
+ const char *chars_ignored,
+ int case_sensitive);
+----
+
+Аргументи:
+
+* _string1_: први стринг за поређење
+* _string2_: други стринг за поређење
+* _chars_ignored_: стринг са карактерима који се игноришу
+* _case_sensitive_: 1 за поређење које прави разлику у величини слова, у супротном 0
+
+Повратна вредност:
+
+* -1 ако је string1 < string2
+* 0 ако је string1 == string2
+* 1 ако је string1 > string2
+
+C пример:
+
+[source, C]
+----
+int diff = weechat_strcmp_ignore_chars ("a-b", "--a-e", "-", 1); /* == -3 */
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== strcasestr
+
+_Ажурирано у верзији 1.3._
+
+Претрага стринга независно од величине слова и локал подешавања.
+
+Прототип:
+
+[source, C]
+----
+const char *weechat_strcasestr (const char *string, const char *search);
+----
+
+Аргументи:
+
+* _string_: стринг
+* _search_: стринг који се тражи у _string_
+
+Повратна вредност:
+
+* показивач на пронађени стринг, или NULL ако се не пронађе (_WeeChat ≥ 1.3_: показивач се враћа је _const char *_ уместо _char *_)
+
+C пример:
+
+[source, C]
+----
+const char *pos = weechat_strcasestr ("aBcDeF", "de"); /* резултат: показивач на "DeF" */
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== strlen_screen
+
+_WeeChat ≥ 0.4.2._
+
+Враћа број карактера на екрану који су потребни за приказивање UTF-8 стринга. Карактери који не могу да се одштампају имају ширину 1 (ово је разлика у односу на функцију <<_utf8_strlen_screen,utf8_strlen_screen>>).
+
+Прототип:
+
+[source, C]
+----
+int weechat_strlen_screen (const char *string);
+----
+
+Аргументи:
+
+* _string_: стринг
+
+Повратна вредност:
+
+* број карактера на екрану који су потребни да се испише UTF-8 стринг
+
+C пример:
+
+[source, C]
+----
+int length_on_screen = weechat_strlen_screen ("é"); /* == 1 */
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def strlen_screen(string: str) -> int: ...
+
+# пример
+length = weechat.strlen_screen("é") # 1
+----
+
+==== string_match
+
+_Ажурирано у верзији 1.0._
+
+Провера да ли стринг задовољава маску.
+
+Прототип:
+
+[source, C]
+----
+int weechat_string_match (const char *string, const char *mask,
+ int case_sensitive);
+----
+
+Аргументи:
+
+* _string_: стринг
+* _mask_: маска са џокерима (`+*+`), сваки џокер хвата 0 или више карактера у стрингу
+* _case_sensitive_: 1 за поређење које прави разлику у величини слова, у супротном 0
+
+[NOTE]
+Почевши од верзије 1.0, у маски се дозвољава употреба џокера (не само на почетку/крају маске).
+
+Повратна вредност:
+
+* 1 ако стринг задовољава маску, у супротном 0
+
+C пример:
+
+[source, C]
+----
+int match1 = weechat_string_match ("abcdef", "abc*", 0); /* == 1 */
+int match2 = weechat_string_match ("abcdef", "*dd*", 0); /* == 0 */
+int match3 = weechat_string_match ("abcdef", "*def", 0); /* == 1 */
+int match4 = weechat_string_match ("abcdef", "*de*", 0); /* == 1 */
+int match5 = weechat_string_match ("abcdef", "*b*d*", 0); /* == 1 */
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def string_match(string: str, mask: str, case_sensitive: int) -> int: ...
+
+# примери
+match1 = weechat.string_match("abcdef", "abc*", 0) # == 1
+match2 = weechat.string_match("abcdef", "*dd*", 0) # == 0
+match3 = weechat.string_match("abcdef", "*def", 0) # == 1
+match4 = weechat.string_match("abcdef", "*de*", 0) # == 1
+match5 = weechat.string_match("abcdef", "*b*d*", 0) # == 1
+----
+
+==== string_match_list
+
+_WeeChat ≥ 2.5._
+
+Проверава да ли стринг задовољава листу маски, при чему је дозвољена употреба негативних маски у формату „!реч”. Негативна маска има виши приоритет у односу на стандардну маску.
+
+Прототип:
+
+[source, C]
+----
+int weechat_string_match_list (const char *string, const char **masks,
+ int case_sensitive);
+----
+
+Аргументи:
+
+* _string_: стринг
+* _masks_: листа маски, са NULL након последње маске у листи; свака маска се пореди са стрингом функцијом <<_string_match,string_match>>
+* _case_sensitive_: 1 за поређење које прави разлику у величини слова, у супротном 0
+
+Повратна вредност:
+
+* 1 ако стринг задовољава листу маски (барем једна од маски је задовољена и ниједна од негативних маски), у супротном 0
+
+C пример:
+
+[source, C]
+----
+const char *masks[3] = { "*", "!abc*", NULL };
+int match1 = weechat_string_match_list ("abc", masks, 0); /* == 0 */
+int match2 = weechat_string_match_list ("abcdef", masks, 0); /* == 0 */
+int match3 = weechat_string_match_list ("def", masks, 0); /* == 1 */
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def string_match_list(string: str, masks: str, case_sensitive: int) -> int: ...
+
+# примери
+match1 = weechat.string_match("abc", "*,!abc*", 0) # == 0
+match2 = weechat.string_match("abcdef", "*,!abc*", 0) # == 0
+match3 = weechat.string_match("def", "*,!abc*", 0) # == 1
+----
+
+==== string_expand_home
+
+_WeeChat ≥ 0.3.3._
+
+Замењује водеће `+~+` стрингом са почетним директоријумом. Ако стринг не почиње са `+~+`, онда се враћа исти стринг.
+
+Прототип:
+
+[source, C]
+----
+char *weechat_string_expand_home (const char *path);
+----
+
+Аргументи:
+
+* _path_: путања
+
+Повратна вредност:
+
+* путања са водећим `+~+` замењеним са почетним директоријумом (након употребе мора да се ослободи позивом „free”)
+
+C пример:
+
+[source, C]
+----
+char *str = weechat_string_expand_home ("~/file.txt");
+/* резултат: "/home/user/file.txt" */
+/* ... */
+free (str);
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== string_eval_path_home
+
+_WeeChat ≥ 1.3, ажурирано у верзији 3.2._
+
+Израчунава путање у 3 корака:
+
+. замењује водеће `%h` са почетним директоријумом програма WeeChat (подразумевано data )
+. замењује водеће `+~+` са корисниковим почетним директоријумом (позивом <<_string_expand_home,string_expand_home>>),
+. израчунава променљиве (погледајте <<_string_eval_expression,string_eval_expression>>).
+
+Прототип:
+
+[source, C]
+----
+char *weechat_string_eval_path_home (const char *path,
+ struct t_hashtable *pointers,
+ struct t_hashtable *extra_vars,
+ struct t_hashtable *options);
+----
+
+Аргументи:
+
+* _path_: путања
+* _pointers_: хеш табела за позив функције <<_string_eval_expression,string_eval_expression>>
+* _extra_vars_: хеш табела за позив функције <<_string_eval_expression,string_eval_expression>>
+* _options_: хеш табела за позив функције <<_string_eval_expression,string_eval_expression>>, са једним од подржаних додатних кључева:
+** _directory_: WeeChat директоријум који се користи када се замењује `%h`, један од:
+*** config
+*** _data_ (подразумевано)
+*** _cache_
+*** _runtime_
+
+Повратна вредност:
+
+* израчуната путања (након употребе мора да се ослободи позивом „free”)
+
+C пример:
+
+[source, C]
+----
+char *str = weechat_string_eval_path_home ("${weechat_config_dir}/test.conf", NULL, NULL, NULL);
+/* резултат: "/home/user/.config/weechat/test.conf" */
+/* ... */
+free (str);
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def string_eval_path_home(path: str, pointers: Dict[str, str], extra_vars: Dict[str, str], options: Dict[str, str]) -> str: ...
+
+# пример
+path = weechat.string_eval_path_home("${weechat_config_dir}/test.conf", {}, {}, {})
+# path == "/home/user/.config/weechat/test.conf"
+----
+
+==== string_remove_quotes
+
+Уклања знаке навода са почетка и краја стринга (ако постоје размаци испред првог знака навода или након последњег, игноришу се).
+
+Прототип:
+
+[source, C]
+----
+char *weechat_string_remove_quotes (const char *string, const char *quotes);
+----
+
+Аргументи:
+
+* _string_: стринг
+* _quotes_: стринг са листом знакова навода
+
+Повратна вредност:
+
+* стринг без знакова навода на почетку/крају (након употребе мора да се ослободи позивом „free”)
+
+C пример:
+
+[source, C]
+----
+char *str = weechat_string_remove_quotes (string, " 'I can't' ", "'");
+/* result: "I can't" */
+/* ... */
+free (str);
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== string_strip
+
+Одсеца карактере на почетку и/или крају стринга.
+
+Прототип:
+
+[source, C]
+----
+char *weechat_string_strip (const char *string, int left, int right,
+ const char *chars);
+----
+
+Аргументи:
+
+* _string_: стринг
+* _left_: одсеца карактере с лева ако је различито од 0
+* _right_: одсеца карактере с десна ако је различито од 0
+* _chars_: стринг са карактерима који треба да се одсеку
+
+Повратна вредност:
+
+* одсечени стринг (након употребе мора да се ослободи позивом „free”)
+
+C пример:
+
+[source, C]
+----
+char *str = weechat_string_strip (".abc -", 0, 1, "- ."); /* result: ".abc" */
+/* ... */
+free (str);
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== string_convert_escaped_chars
+
+_WeeChat ≥ 1.0._
+
+Конвертује означене карактере у њихову вредност:
+
+* `+\"+`: знак навода
+* `+\\+`: обрнута коса црта
+* `+\a+`: звучно упозорење (BEL)
+* `+\b+`: брисање у лево
+* `+\e+`: escape
+* `+\f+`: form feed
+* `+\n+`: прелом линије
+* `+\r+`: carriage return
+* `+\t+`: хоризонтални таб
+* `+\v+`: вертикални таб
+* `+\0ooo+`: карактер као октална вредност (`ooo` је од 0 до 3 цифре)
+* `+\xhh+`: карактер као хексадецимална вредност (`hh` је од 1 до 2 цифре)
+* `+\uhhhh+`: уникод карактер као хексадецимална вредност (`hhhh` је од 1 до 4 цифре)
+* `+\Uhhhhhhhh+`: уникод карактер као хексадецимална вредност (`hhhhhhhh` је од 1 до 8 цифара)
+
+Прототип:
+
+[source, C]
+----
+char *weechat_string_convert_escaped_chars (const char *string);
+----
+
+Аргументи:
+
+* _string_: стринг
+
+Повратна вредност:
+
+* стринг у којем су означени карактери замењени својим вредностима (након употребе мора да се ослободи позивом „free”)
+
+C пример:
+
+[source, C]
+----
+char *str = weechat_string_convert_escaped_chars ("snowman: \\u2603");
+/* str == "snowman: ☃" */
+/* ... */
+free (str);
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== string_mask_to_regex
+
+Враћа регуларни израз изграђен маском, у којем је једини специјални карактер `+*+`. Сви остали специјални карактери за регуларни израз се означавају.
+
+Прототип:
+
+[source, C]
+----
+char *weechat_string_mask_to_regex (const char *mask);
+----
+
+Аргументи:
+
+* _mask_: маска
+
+Повратна вредност:
+
+* регуларни израз, као стринг (након употребе мора да се ослободи позивом „free”)
+
+C пример:
+
+[source, C]
+----
+char *str_regex = weechat_string_mask_to_regex ("test*mask");
+/* резултат: "test.*mask" */
+/* ... */
+free (str_regex);
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def string_mask_to_regex(mask: str) -> str: ...
+
+# пример
+regex = weechat.string_mask_to_regex("test*mask") # "test.*mask"
+----
+
+==== string_regex_flags
+
+_WeeChat ≥ 0.3.7._
+
+Враћа показивач на стринг након заставица и маску са заставицама за компајлирање регуларног израза.
+
+Прототип:
+
+[source, C]
+----
+const char *weechat_string_regex_flags (const char *regex, int default_flags, int *flags)
+----
+
+Аргументи:
+
+* _regex_: POSIX проширени регуларни израз
+* _default_flags_: комбинација следећих вредности (погледајте `man regcomp`):
+** REG_EXTENDED
+** REG_ICASE
+** REG_NEWLINE
+** REG_NOSUB
+* _flags_: вредност показивача се поставља заставицама које се користе у регуларном изразу (подразумеване заставице + заставице постављене у регуларном изразу)
+
+Заставице морају да се налазе на почетку регуларног израза. Формат је: „(?eins-eins)стринг”.
+
+Дозвољене су следеће заставице:
+
+* _e_: POSIX проширени регуларни израз (_REG_EXTENDED_)
+* _i_: не прави се разлика у величини слова (_REG_ICASE_)
+* _n_: оператори подударања било ког карактера се не подударају са преломом линије (_REG_NEWLINE_)
+* _s_: није потребна подршка за адресирање подударања подстрингова (_REG_NOSUB_)
+
+Повратна вредност:
+
+* показивач у _regex_, иза заставица
+
+C пример:
+
+[source, C]
+----
+const char *regex = "(?i)test";
+int flags;
+const char *ptr_regex = weechat_string_regex_flags (regex, REG_EXTENDED, &flags);
+/* ptr_regex == "test", flags == REG_EXTENDED | REG_ICASE */
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== string_regcomp
+
+_WeeChat ≥ 0.3.7._
+
+Компајлира POSIX проширени регуларни израз користећи необавезне заставице на почетку стринга (за формат заставица, погледајте <<_string_regex_flags,string_regex_flags>>).
+
+Прототип:
+
+[source, C]
+----
+int weechat_string_regcomp (void *preg, const char *regex, int default_flags)
+----
+
+Аргументи:
+
+* _preg_: показивач на _regex_t_ структуру
+* _regex_: POSIX проширени регуларни израз
+* _default_flags_: комбинација следећих вредности (погледајте `man regcomp`):
+** REG_EXTENDED
+** REG_ICASE
+** REG_NEWLINE
+** REG_NOSUB
+
+Повратна вредност:
+
+* исти повратни кôд као и функција `regcomp` (0 ако је OK, нека друга вредност у случају грешке, погледајте `man regcomp`)
+
+[NOTE]
+Након употребе, регуларни израз _preg_ мора да се очисти позивом „regfree”, у случају да је функција вратила 0 (OK).
+
+C пример:
+
+[source, C]
+----
+regex_t my_regex;
+if (weechat_string_regcomp (&my_regex, "(?i)test", REG_EXTENDED) == 0)
+{
+ /* OK */
+ /* ... */
+ regfree (&my_regex);
+}
+else
+{
+ /* грешка */
+ /* ... */
+}
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== string_has_highlight
+
+Проверава да ли стринг има једно или више истицања, користећи листу речи за истицање.
+
+Прототип:
+
+[source, C]
+----
+int weechat_string_has_highlight (const char *string,
+ const char highlight_words);
+----
+
+Аргументи:
+
+* _string_: стринг
+* _highlight_words_: листа речи за истицање, раздвојених запетама
+
+Повратна вредност:
+
+* 1 ако стринг има једно или више истицања, у супротном 0
+
+C пример:
+
+[source, C]
+----
+int hl = weechat_string_has_highlight ("мој тест стринг", "тест,реч2"); /* == 1 */
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def string_has_highlight(string: str, highlight_words: str) -> int: ...
+
+# пример
+highlight = weechat.string_has_highlight("my test string", "test,word2") # 1
+----
+
+==== string_has_highlight_regex
+
+_WeeChat ≥ 0.3.4._
+
+Проверава да ли стринг има једно или више истицања, користећи POSIX проширени регуларни израз. + За бар једно подударање регуларног израза над стрингом, он мора бити уоквирен граничницима (карактери различити од: алфанумерика, `+-+`, `+_+` и `+|+`).
+
+Прототип:
+
+[source, C]
+----
+int weechat_string_has_highlight_regex (const char *string, const char *regex);
+----
+
+Аргументи:
+
+* _string_: стринг
+* _regex_: POSIX проширени регуларни израз
+
+Повратна вредност:
+
+* 1 ако стринг има једно или више истицања, у супротном 0
+
+C пример:
+
+[source, C]
+----
+int hl = weechat_string_has_highlight_regex ("мој тест стринг", "тест|реч2"); /* == 1 */
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def string_has_highlight_regex(string: str, regex: str) -> int: ...
+
+# пример
+highlight = weechat.string_has_highlight_regex("мој тест стринг", "тест|реч2") # 1
+----
+
+==== string_replace
+
+Замењује сва појављивања стринга неким другим стрингом.
+
+Прототип:
+
+[source, C]
+----
+char *weechat_string_replace (const char *string, const char *search,
+ const char *replace);
+----
+
+Аргументи:
+
+* _string_: стринг
+* _search_: стринг који треба да се замени
+* _replace_: замена за стринг _search_
+
+Повратна вредност:
+
+* стринг у којем је _search_ замењено са _replace_ (након употребе мора да се ослободи позивом „free”)
+
+C пример:
+
+[source, C]
+----
+char *str = weechat_string_replace ("test", "s", "x"); /* резултат: "text" */
+/* ... */
+free (str);
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== string_replace_regex
+
+_WeeChat ≥ 1.0._
+
+Замењује текст у стрингу помоћу регуларног израза, текста замене и необавезне функције повратног позива.
+
+Прототип:
+
+[source, C]
+----
+char *weechat_string_replace_regex (const char *string, void *regex,
+ const char *replace, const char reference_char,
+ char *(*callback)(void *data, const char *text),
+ void *callback_data);
+----
+
+Аргументи:
+
+* _string_: стринг
+* _regex_: показивач на регуларни израз (_regex_t_ структура) компајлираног WeeChat функцијом <<_string_regcomp,string_regcomp>> или regcomp (погледајте `man regcomp`)
+* _replace_: текст замене, у коме су дозвољене следеће референце:
+** `+$0+` до `+$99+`: подударање 0 до 99 у регуларном изразу (0 је цело подударање, 1 до 99 су групе ухваћене заградама)
+** `+$++`: последње подударање (са највишим бројем)
+** `+$.*N+`: подударање `+N+` (може бити `+++` или `+0+` до `+99+`), у коме су сви карактери замењени са `+*+` (карактер `+*+` може бити било који карактер између размака (32) и `+~+` (126))
+* _reference_char_: карактер који се користи за референце на подударања (обично је `+$+`)
+* _callback_: необавезна функција повратног позива која се позива за сваку референцу у _replace_ (осим за подударања која се замењују карактером); функција повратног позива мора да врати:
+** ново алоцирани стринг: он се користи као текст замене (након употребе се ослобађа)
+** NULL: као текст замене се користи текст примљену у функцији повратног позива (без измена)
+* _callback_data_: показивач прослеђен функцији повратног позива када се позове
+
+Повратна вредност:
+
+* стринг са замењеним текстом, NULL у случају проблема (након употребе мора да се ослободи позивом „free”)
+
+C пример:
+
+[source, C]
+----
+regex_t my_regex;
+char *string;
+if (weechat_string_regcomp (&my_regex, "([0-9]{4})-([0-9]{2})-([0-9]{2})",
+ REG_EXTENDED) == 0)
+{
+ string = weechat_string_replace_regex ("date: 2014-02-14", &my_regex,
+ "$3/$2/$1", '$', NULL, NULL);
+ /* string == "date: 14/02/2014" */
+ if (string)
+ free (string);
+ regfree (&my_regex);
+}
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== string_split
+
+_Ажурирано у верзијама 2.5, 2.6._
+
+Дели стринг по једном или више граничника.
+
+Прототип:
+
+[source, C]
+----
+char **weechat_string_split (const char *string, const char *separators,
+ const char *strip_items, int flags,
+ int num_items_max, int *num_items);
+----
+
+Аргументи:
+
+* _string_: стринг који се дели
+* _separators_: граничници који се користе за поделу
+* _strip_items_: карактери који се одсецају од ставки које се враћају (лево/десно); није обавезном, може бити NULL
+* _flags_: комбинација вредности која мења подразумевано понашање; ако је вредност 0, користи се подразумевано понашање (нема одсецања граничника са почетка/краја стринга, вишеструки граничници се остављају какви јесу, па могу да се врате и празни стрингови); прихватају се следеће заставице:
+** WEECHAT_STRING_SPLIT_STRIP_LEFT: граничници се одсецају с лева (почетка стринга)
+** WEECHAT_STRING_SPLIT_STRIP_RIGHT: граничници се одсецају с десна (краја стринга)
+** WEECHAT_STRING_SPLIT_COLLAPSE_SEPS: више узастопних граничника се замењује једним
+** WEECHAT_STRING_SPLIT_KEEP_EOL: крај линије се задржава у свакој вредности
+* _num_items_max_: максимални број креираних ставки (0 = нема ограничења)
+* _num_items_: показивач на int који садржи број креираних ставки
+
+[NOTE]
+У програму WeeChat верзије ≤ 2.4, аргумент _flags_ се звао _keep_eol_ и узимао је другачије вредности, које морају да се конвертују на следећи начин:
+[width="100%", cols="1,10", options="header"]
+|===
+| keep_eol | flags
+| 0 | WEECHAT_STRING_SPLIT_STRIP_LEFT \| WEECHAT_STRING_SPLIT_STRIP_RIGHT \| WEECHAT_STRING_SPLIT_COLLAPSE_SEPS
+| 1 | WEECHAT_STRING_SPLIT_STRIP_LEFT \| WEECHAT_STRING_SPLIT_STRIP_RIGHT \| WEECHAT_STRING_SPLIT_COLLAPSE_SEPS \| WEECHAT_STRING_SPLIT_KEEP_EOL
+| 2 | WEECHAT_STRING_SPLIT_STRIP_LEFT \| WEECHAT_STRING_SPLIT_COLLAPSE_SEPS \| WEECHAT_STRING_SPLIT_KEEP_EOL
+|===
+
+Повратна вредност:
+
+* низ стрингова, NULL у случају проблема (након употребе мора да се ослободи позивом <<_string_free_split,string_free_split>>)
+
+C пример:
+
+[source, C]
+----
+char **argv;
+int argc;
+
+argv = weechat_string_split ("abc de fghi ", " ", NULL, 0, 0, &argc);
+/* result: argv[0] == "abc"
+ argv[1] == "de"
+ argv[2] == ""
+ argv[3] == "fghi"
+ argv[4] = ""
+ argv[5] == NULL
+ argc == 5
+*/
+weechat_string_free_split (argv);
+
+argv = weechat_string_split ("abc de fghi ", " ", NULL,
+ WEECHAT_STRING_SPLIT_STRIP_LEFT
+ | WEECHAT_STRING_SPLIT_STRIP_RIGHT
+ | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS,
+ 0, &argc);
+/* result: argv[0] == "abc"
+ argv[1] == "de"
+ argv[2] == "fghi"
+ argv[3] == NULL
+ argc == 3
+*/
+weechat_string_free_split (argv);
+
+argv = weechat_string_split ("abc de fghi ", " ", NULL,
+ WEECHAT_STRING_SPLIT_STRIP_LEFT
+ | WEECHAT_STRING_SPLIT_STRIP_RIGHT
+ | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS
+ | WEECHAT_STRING_SPLIT_KEEP_EOL,
+ 0, &argc);
+/* result: argv[0] == "abc de fghi"
+ argv[1] == "de fghi"
+ argv[2] == "fghi"
+ argv[3] == NULL
+ argc == 3
+*/
+weechat_string_free_split (argv);
+
+argv = weechat_string_split ("abc de fghi ", " ", NULL,
+ WEECHAT_STRING_SPLIT_STRIP_LEFT
+ | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS
+ | WEECHAT_STRING_SPLIT_KEEP_EOL,
+ 0, &argc);
+/* result: argv[0] == "abc de fghi "
+ argv[1] == "de fghi "
+ argv[2] == "fghi "
+ argv[3] == NULL
+ argc == 3
+*/
+weechat_string_free_split (argv);
+
+argv = weechat_string_split (" abc, de,, fghi ", ",", " ",
+ WEECHAT_STRING_SPLIT_STRIP_LEFT
+ | WEECHAT_STRING_SPLIT_STRIP_RIGHT
+ | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS,
+ 0, &argc);
+/* result: argv[0] == "abc"
+ argv[1] == "de"
+ argv[2] == "fghi"
+ argv[3] == NULL
+ argc == 3
+*/
+weechat_string_free_split (argv);
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== string_split_shell
+
+_WeeChat ≥ 1.0._
+
+Дели стринг на начин на који командно окружење дели команду са аргументима.
+
+Ова функција је C конверзија Python класе „shlex” (фајл: Lib/shlex.py у Python репозиторијуму), погледајте: https://docs.python.org/3/library/shlex.html.
+
+Прототип:
+
+[source, C]
+----
+char **weechat_string_split_shell (const char *string, int *num_items);
+----
+
+Аргументи:
+
+* _string_: стринг који се дели
+* _num_items_: показивач на int који садржи број креираних ставки
+
+Повратна вредност:
+
+* низ стрингова, NULL у случају проблема (након употребе мора да се ослободи позивом <<_string_free_split,string_free_split>>)
+
+C пример:
+
+[source, C]
+----
+char **argv;
+int argc;
+argv = weechat_string_split_shell ("test 'first arg' \"second arg\"", &argc);
+/* result: argv[0] == "test"
+ argv[1] == "first arg"
+ argv[2] == "second arg"
+ argv[3] == NULL
+ argc == 3
+*/
+weechat_string_free_split (argv);
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== string_free_split
+
+Ослобађа меморију коју је употребило дељење стринга.
+
+Прототип:
+
+[source, C]
+----
+void weechat_string_free_split (char **split_string);
+----
+
+Аргументи:
+
+* _split_string_: стринг подељен функцијом <<_string_split,string_split>>
+
+C пример:
+
+[source, C]
+----
+char *argv;
+int argc;
+argv = weechat_string_split (string, " ", 0, 0, &argc);
+/* ... */
+weechat_string_free_split (argv);
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== string_build_with_split_string
+
+Изграђује стринг од подељеног стринга.
+
+Прототип:
+
+[source, C]
+----
+char *weechat_string_build_with_split_string (char **split_string,
+ const char *separator);
+----
+
+Аргументи:
+
+* _split_string_: стринг подељен функцијом <<_string_split,string_split>>
+* _separator_: стринг који се користи за раздвајање стрингова
+
+Повратна вредност:
+
+* стринг изграђен са (након употребе мора да се ослободи позивом „free”)
+
+C пример:
+
+[source, C]
+----
+char **argv;
+int argc;
+argv = weechat_string_split ("abc def ghi", " ", 0, 0, &argc);
+char *str = weechat_string_build_with_split_string (argv, ";");
+/* str == "abc;def;ghi" */
+/* ... */
+free (str);
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== string_split_command
+
+Дели листу команди раздвојених са _separator_ (које у стрингу могу да се означе са `+\+`).
+
+Прототип:
+
+[source, C]
+----
+char **weechat_string_split_command (const char *command, char separator);
+----
+
+Аргументи:
+
+* _command_: команда која се дели
+* _separator_: граничник
+
+Повратна вредност:
+
+* низ стрингова, NULL у случају проблема (након употребе мора да се ослободи позивом <<_free_split_command,free_split_command>>)
+
+C пример:
+
+[source, C]
+----
+char **argv = weechat_string_split_command ("/command1 arg;/command2", ';');
+/* result: argv[0] == "/command1 arg"
+ argv[1] == "/command2"
+ argv[2] == NULL
+*/
+weechat_free_split_command (argv);
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== string_free_split_command
+
+Ослобађа меморију коју је употребила команда поделе.
+
+Прототип:
+
+[source, C]
+----
+void weechat_string_free_split_command (char **split_command);
+----
+
+Аргументи:
+
+* _split_command_: команда подељена са <<_string_split_command,string_split_command>>
+
+C пример:
+
+[source, C]
+----
+char **argv = weechat_string_split_command ("/command1 arg;/command2", ';');
+/* ... */
+weechat_free_split_command (argv);
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== string_format_size
+
+Изграђује стринг са форматираном величином фајла и јединицама преведеним на локални језик.
+
+Прототип:
+
+[source, C]
+----
+char *weechat_string_format_size (unsigned long long size);
+----
+
+Аргументи:
+
+* _size_: величина (у бајтовима)
+
+Повратна вредност:
+
+* форматирани стринг (након употребе мора да се ослободи позивом „free”)
+
+C примери:
+
+[source, C]
+----
+/* примери са енглеским локал подешавањем */
+
+char *str = weechat_string_format_size (0); /* str == "0 bytes" */
+/* ... */
+free (str);
+
+char *str = weechat_string_format_size (1); /* str == "1 byte" */
+/* ... */
+free (str);
+
+char *str = weechat_string_format_size (200); /* str == "200 bytes" */
+/* ... */
+free (str);
+
+char *str = weechat_string_format_size (15200); /* str == "15.2 KB" */
+/* ... */
+free (str);
+
+char *str = weechat_string_format_size (2097152); /* str == "2.10 MB" */
+/* ... */
+free (str);
+----
+
+Скрипта (Python), _WeeChat ≥ 2.2_:
+
+[source, python]
+----
+# прототип
+def string_format_size(size: int) -> str: ...
+
+# пример
+str = weechat.string_format_size(15200) # == "15.2 KB"
+----
+
+==== string_color_code_size
+
+_WeeChat ≥ 3.0._
+
+Враћа величину (у бајтовима) WeeChat кода боје на почетку стринга.
+
+Прототип:
+
+[source, C]
+----
+int weechat_string_color_code_size (const char *string);
+----
+
+Аргументи:
+
+* _string_: стринг
+
+Повратна вредност:
+
+* величина (у бајтовима) WeeChat кода боје на почетку стринга; ако је стринг NULL, празан или не почиње кодом боје, враћа се 0; ако стринг почиње са више кодова боје, враћа се само величина првог
+
+C примери:
+
+[source, C]
+----
+int size;
+
+size = weechat_string_color_code_size ("test"); /* size == 0 */
+size = weechat_string_color_code_size (weechat_color ("bold")); /* size == 2 */
+size = weechat_string_color_code_size (weechat_color ("yellow,red")); /* size == 7 */
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def string_color_code_size(string: str) -> int: ...
+
+# примери
+size = weechat.string_color_code_size("test") # size == 0
+size = weechat.string_color_code_size(weechat.color("bold")) # size == 2
+size = weechat.string_color_code_size(weechat.color("yellow,red")) # size == 7
+----
+
+==== string_remove_color
+
+Уклања WeeChat боје из стринга.
+
+Прототип:
+
+[source, C]
+----
+char *weechat_string_remove_color (const char *string,
+ const char *replacement);
+----
+
+Аргументи:
+
+* _string_: стринг
+* _replacement_: ако није NULL и није празно, WeeChat кодови боје се замењују првим карактером овог стринга, у супротном се из стринга уклањају WeeChat кодови боја и карактери који следе (ако су у вези боје)
+
+Повратна вредност:
+
+* стринг без боја (након употребе мора да се ослободи позивом „free”)
+
+C примери:
+
+[source, C]
+----
+/* remove color codes */
+char *str = weechat_string_remove_color (my_string1, NULL);
+/* ... */
+free (str);
+
+/* replace color codes by "?" */
+char *str = weechat_string_remove_color (my_string2, "?");
+/* ... */
+free (str);
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def string_remove_color(string: str, replacement: str) -> str: ...
+
+# пример
+str = weechat.string_remove_color(my_string, "?")
+----
+
+==== string_base_encode
+
+_WeeChat ≥ 2.4._
+
+Кодира стринг као base 16, 32, или 64.
+
+Прототип:
+
+[source, C]
+----
+int weechat_string_base_encode (int base, const char *from, int length, char *to);
+----
+
+Аргументи:
+
+* _base_: 16, 32, или 64
+* _from_: стринг који се кодира
+* _length_: дужина стринга који се кодира (на пример `strlen(from)`)
+* _to_: показивач на стринг у који се смешта резултат (мора бити довољне дужине, резултат је дужи од почетног стринга)
+
+Повратна вредност:
+
+* дужина стринга смештеног у _*to_ (не рачунајући завршно `\0`), -1 у случају грешке
+
+C пример:
+
+[source, C]
+----
+char *string = "abcdefgh", result[128];
+int length;
+length = weechat_string_base_encode (16, string, strlen (string), result);
+/* length == 16, result == "6162636465666768" */
+length = weechat_string_base_encode (32, string, strlen (string), result);
+/* length == 16, result == "MFRGGZDFMZTWQ===" */
+length = weechat_string_base_encode (64, string, strlen (string), result);
+/* length == 12, result == "YWJjZGVmZ2g=" */
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== string_base_decode
+
+_WeeChat ≥ 2.4._
+
+Декодира стринг кодиран у base 16, 32, или 64.
+
+Прототип:
+
+[source, C]
+----
+int weechat_string_base_decode (int base, const char *from, char *to);
+----
+
+Аргументи:
+
+* _base_: 16, 32, или 64
+* _from_: стринг који се декодира
+* _to_: показивач на стринг у који се смешта резултат (мора бити довољне дужине, резултат је краћи од почетног стринга)
+
+Повратна вредност:
+
+* дужина стринга смештеног у _*to_ (не рачунајући завршно `\0`), -1 у случају грешке
+
+C пример:
+
+[source, C]
+----
+char result[128];
+int length;
+length = weechat_string_base_decode (16, "6162636465666768", result);
+/* length == 8, result == "abcdefgh" */
+length = weechat_string_base_decode (32, "MFRGGZDFMZTWQ===", result);
+/* length == 8, result == "abcdefgh" */
+length = weechat_string_base_decode (64, "YWJjZGVmZ2g=", result);
+/* length == 8, result == "abcdefgh" */
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== string_hex_dump
+
+_WeeChat ≥ 1.4._
+
+Приказује приказ података као хексадецималне и ascii бајтове.
+
+Прототип:
+
+[source, C]
+----
+char *string_hex_dump (const char *data, int data_size, int bytes_per_line,
+ const char *prefix, const char *suffix);
+----
+
+Аргументи:
+
+* _data_: подаци који се приказују
+* _data_size_: број бајтова који се приказују у _data_
+* _bytes_per_line_: број бајтова који треба да се прикаже у свакој линији
+* _prefix_: префикс који се приказује на почетку сваке линије (није обавезан, може да буде NULL)
+* _suffix_: суфикс који се приказује на крају сваке линије (није обавезан, може да буде NULL)
+
+Повратна вредност:
+
+* стринг са приказом података (након употребе мора да се ослободи позивом „free”)
+
+C пример:
+
+[source, C]
+----
+char *string = "abc def-ghi";
+char *dump = weechat_string_hex_dump (string, strlen (string), 8, " >> ", NULL);
+/* dump == " >> 61 62 63 20 64 65 66 2D a b c d e f - \n"
+ " >> 67 68 69 g h i " */
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== string_is_command_char
+
+_WeeChat ≥ 0.3.2._
+
+Проверава да ли је први карактер стринга командни карактер (подразумевани командни карактер је `+/+`).
+
+Прототип:
+
+[source, C]
+----
+int weechat_string_is_command_char (const char *string);
+----
+
+Аргументи:
+
+* _string_: стринг
+
+Повратна вредност:
+
+* 1 ако је први карактер стринга командни карактер, у супротном 0
+
+C примери:
+
+[source, C]
+----
+int command_char1 = weechat_string_is_command_char ("/test"); /* == 1 */
+int command_char2 = weechat_string_is_command_char ("test"); /* == 0 */
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def string_is_command_char(string: str) -> int: ...
+
+# примери
+command_char1 = weechat.string_is_command_char("/test") # == 1
+command_char2 = weechat.string_is_command_char("test") # == 0
+----
+
+==== string_input_for_buffer
+
+_WeeChat ≥ 0.3.2._
+
+Враћа показивач на текст уноса за бафер (показивач унутар „string” аргумента), или NULL ако стринг није команда.
+
+Прототип:
+
+[source, C]
+----
+const char *weechat_string_input_for_buffer (const char *string);
+----
+
+Аргументи:
+
+* _string_: стринг
+
+Повратна вредност:
+
+* показивач у „string”, или NULL
+
+C примери:
+
+[source, C]
+----
+const char *str1 = weechat_string_input_for_buffer ("test"); /* "test" */
+const char *str2 = weechat_string_input_for_buffer ("/test"); /* NULL */
+const char *str3 = weechat_string_input_for_buffer ("//test"); /* "/test" */
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def string_input_for_buffer(string: str) -> str: ...
+
+# примери
+str1 = weechat.string_input_for_buffer("test") # "test"
+str2 = weechat.string_input_for_buffer("/test") # ""
+str3 = weechat.string_input_for_buffer("//test") # "/test"
+----
+
+==== string_eval_expression
+
+_WeeChat ≥ 0.4.0, ажурирано у верзијама 0.4.2, 0.4.3, 1.0, 1.1, 1.2, 1.3, 1.6, 1.8, 2.0, 2.2, 2.3, 2.7, 2.9, 3.1 и 3.2._
+
+Израчунава израз и враћа вредност као стринг. Специјалне променљиве у формату `+${променљива}+` се развијају (погледајте табелу испод).
+
+[NOTE]
+Почевши од верзије 1.0, подржава се угњеждавање променљивих, на пример: `+${color:${променљива}}+`.
+
+Прототип:
+
+[source, C]
+----
+char *weechat_string_eval_expression (const char *expr,
+ struct t_hashtable *pointers,
+ struct t_hashtable *extra_vars,
+ struct t_hashtable *options);
+----
+
+Аргументи:
+
+* _expr_: израз који треба да се израчуна (погледајте <<eval_conditions,услове>> и <<eval_variables,променљиве>>)
+* _pointers_: хеш табела са показивачима (кључеви моја бити стринг, вредности морају бити показивач); показивачи „window” и „buffer” се аутоматски додају ако се не налазе у хеш табели (са показивачем на текући прозор/бафер) (може да буде NULL):
+** _regex_: показивач на регуларни израз (_regex_t_ структуру) компајлиран WeeChat функцијом <<_string_regcomp,string_regcomp>> или са regcomp (погледајте `man regcomp`); ова опција је слична са _regex_ у хеш табели _options_ (испод), али се користи у циљу бољих перформанси
+* _extra_vars_: додатне променљиве које ће се развити (може да буде NULL)
+* _options_: хеш табела са неким опцијама (кључеви и вредности морају бити стринг) (може да буде NULL):
+** _type_: подразумевано понашање је да се само замене вредности у изразу, остали типови који могу да се изаберу су следећи:
+*** _condition_: израз се израчунава као услов: користе се оператори и заграде, резултат је логичка вредност („0” или „1”)
+** _prefix_: префикс испред променљиве која се замењује (подразумевано: `+${+`)
+** _suffix_: суфикс након променљиве која се замењује (подразумевано: `+}+`)
+** _extra_: подразумевано понашање је да се само замене додатне променљиве (_extra_vars_), другачије понашање може да се изабере:
+*** _eval_: додатне променљиве (_extra_vars_) се и саме израчунавају пре замене _(WeeChat ≥ 1.6)_
+** _regex_: регуларни израз који се користи за замену текста у _expr_ (који се онда не израчунава)
+** _regex_replace_: текст за замену који се користи са _regex_, којим се мења текст у _expr_ (_regex_replace_ се израчунава за свако подударање _regex_ у _expr_, све док више нема подударања)
+** _debug_: дибаг ниво (стринг са целим бројем ≥ 1), ако је укључен, у хеш табелу _options_ се додаје кључ „debug_output”:
+*** _1_: укључује дибаг
+*** _2_: укључује детаљнији дибаг
+
+Повратна вредност:
+
+* израчунати израз (након употребе мора да се ослободи позивом „free”), или NULL у случају проблема (неважећи израз или ако нема довољно слободне меморије)
+
+C примери:
+
+[source, C]
+----
+/* услови */
+struct t_hashtable *options1 = weechat_hashtable_new (8,
+ WEECHAT_HASHTABLE_STRING,
+ WEECHAT_HASHTABLE_STRING,
+ NULL,
+ NULL);
+weechat_hashtable_set (options1, "type", "condition");
+char *str1 = weechat_string_eval_expression ("${window.win_width} > 100", NULL, NULL, options1); /* "1" */
+char *str2 = weechat_string_eval_expression ("abc =~ def", NULL, NULL, options1); /* "0" */
+
+/* прост израз */
+char *str3 = weechat_string_eval_expression ("${buffer.full_name}", NULL, NULL, NULL); /* "core.weechat" */
+
+/* замена регуларним изразом */
+struct t_hashtable *options2 = weechat_hashtable_new (8,
+ WEECHAT_HASHTABLE_STRING,
+ WEECHAT_HASHTABLE_STRING,
+ NULL,
+ NULL);
+/* додавање заграда око URL адреса */
+weechat_hashtable_set (options2, "regex", "[a-zA-Z0-9_]+://[^ ]+");
+weechat_hashtable_set (options2, "regex_replace", "[ ${re:0} ]");
+char *str4 = weechat_string_eval_expression ("test: https://weechat.org", NULL, NULL, NULL); /* "test: [ https://weechat.org ]" */
+
+/* скривање лозинки */
+weechat_hashtable_set (options2, "regex", "(password=)([^ ]+)");
+weechat_hashtable_set (options2, "regex_replace", "${re:1}${hide:*,${re:2}}");
+char *str5 = weechat_string_eval_expression ("password=abc password=def", NULL, NULL, NULL); /* "password=*** password=***" */
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def string_eval_expression(expr: str, pointers: Dict[str, str], extra_vars: Dict[str, str], options: Dict[str, str]) -> str: ...
+
+# примери
+
+# услови
+str1 = weechat.string_eval_expression("${window.win_width} > 100", {}, {}, {"type": "condition"}) # "1"
+str2 = weechat.string_eval_expression("abc =~ def", {}, {}, {"type": "condition"}) # "0"
+
+# прост израз
+str3 = weechat.string_eval_expression("${buffer.full_name}", {}, {}, {}) # "core.weechat"
+
+# замена регуларним изразом: додавање заграда око URL адреса
+options = {
+ "regex": "[a-zA-Z0-9_]+://[^ ]+",
+ "regex_replace": "[ ${re:0} ]",
+}
+str4 = weechat.string_eval_expression("test: https://weechat.org", {}, {}, options) # "test: [ https://weechat.org ]"
+
+# замена са регуларним изразом: скривање лозинки
+options = {
+ "regex": "(password=)([^ ]+)",
+ "regex_replace": "${re:1}${hide:*,${re:2}}",
+}
+str5 = weechat.string_eval_expression("password=abc password=def", {}, {}, options) # "password=*** password=***"
+----
+
+[[eval_conditions]]
+===== Услови
+
+Листа логичких оператора који могу да се користе у условима (по редоследу приоритета, од првог до последњег):
+
+[width="100%", cols="2,8,4,4", options="header"]
+|===
+| Оператор | Опис | Примери | Резултати
+
+| `+&&+` |
+ Логичко „и” |
+ `+25 && 77+` +
+ `+25 && 0+` |
+ `+1+` +
+ `+0+`
+
+| `+\|\|+` |
+ Логичко „или” |
+ `+25 \|\| 0+` +
+ `+0 \|\| 0+` |
+ `+1+` +
+ `+0+`
+|===
+
+Листа оператора поређења који могу да се користе у условима (према редоследу приоритета, од првог до последњег):
+
+[width="100%", cols="2,8,4,4", options="header"]
+|===
+| Оператор | Опис | Примери | Резултат
+
+| `+=~+` |
+ Подудара се са POSIX проширеним регуларним изразом (дозвољене су необавезне заставице, погледајте функцију <<_string_regcomp,string_regcomp>>) |
+ `+abc def =~ ab.*ef+` +
+ `+abc def =~ y.*z+` |
+ `+1+` +
+ `+0+`
+
+| `+!~+` |
+ НЕ подудара се са POSIX проширеним регуларним изразом (дозвољене су необавезне заставице, погледајте функцију <<_string_regcomp,string_regcomp>>) |
+ `+abc def !~ ab.*ef+` +
+ `+abc def !~ y.*z+` |
+ `+0+` +
+ `+1+`
+
+| `+==*+` |
+ Подудара се са маском где је дозвољено „*”, разликује величину слова (погледајте функцију <<_string_match,string_match>>) +
+ _(WeeChat ≥ 2.9)_ |
+ `+abc def ==* a*f+` +
+ `+abc def ==* y*z+` |
+ `+1+` +
+ `+0+`
+
+| `+!!*+` |
+ НИЈЕ џокер маска у којој је дозвољено „*”, разликује величину слова (погледајте функцију <<_string_match,string_match>>) +
+ _(WeeChat ≥ 2.9)_ |
+ `+abc def !!* a*f+` +
+ `+abc def !!* y*z+` |
+ `+0+` +
+ `+1+`
+
+| `+=*+` |
+ Подудара се са маском где је дозвољено „*”, не разликује величину слова (погледајте функцију <<_string_match,string_match>>) +
+ _(WeeChat ≥ 1.8)_ |
+ `+abc def =* A*F+` +
+ `+abc def =* Y*Z+` |
+ `+1+` +
+ `+0+`
+
+| `+!*+` |
+ НИЈЕ џокер маска у којој је дозвољено „*”, не разликује величину слова (погледајте функцију <<_string_match,string_match>>) +
+ _(WeeChat ≥ 1.8)_ |
+ `+abc def !* A*F+` +
+ `+abc def !* Y*Z+` |
+ `+0+` +
+ `+1+`
+
+| `+==-+` |
+ Је укључено, разликује величину слова +
+ _(WeeChat ≥ 2.9)_ |
+ `+abc def ==- bc+` +
+ `+abc def ==- xyz+` |
+ `+1+` +
+ `+0+`
+
+| `+!!-+` |
+ НИЈЕ укључено, разликује величину слова +
+ _(WeeChat ≥ 2.9)_ |
+ `+abc def !!- bc+` +
+ `+abc def !!- xyz+` |
+ `+0+` +
+ `+1+`
+
+| `+=-+` |
+ Је укључено, не разликује величину слова +
+ _(WeeChat ≥ 2.9)_ |
+ `+abc def =- BC+` +
+ `+abc def =- XYZ+` |
+ `+1+` +
+ `+0+`
+
+| `+!-+` |
+ НИЈЕ укључено, не разликује величину слова +
+ _(WeeChat ≥ 2.9)_ |
+ `+abc def !- BC+` +
+ `+abc def !- XYZ+` |
+ `+0+` +
+ `+1+`
+
+| `+==+` |
+ Једнако |
+ `+test == test+` +
+ `+test == string+` |
+ `+1+` +
+ `+0+`
+
+| `+!=+` |
+ Није једнако |
+ `+test != test+` +
+ `+test != string+` |
+ `+0+` +
+ `+1+`
+
+| `+<=+` |
+ Мање или једнако |
+ `+abc <= defghi+` +
+ `+abc <= abc+` +
+ `+defghi <= abc+` +
+ `+15 <= 2+` |
+ `+1+` +
+ `+1+` +
+ `+0+` +
+ `+0+`
+
+| `+<+` |
+ Мање |
+ `+abc < defghi+` +
+ `+abc < abc+` +
+ `+defghi < abc+` +
+ `+15 < 2+` |
+ `+1+` +
+ `+0+` +
+ `+0+` +
+ `+0+`
+
+| `+>=+` |
+ Веће или једнако |
+ `+defghi >= abc+` +
+ `+abc >= abc+` +
+ `+abc >= defghi+` +
+ `+15 >= 2+` |
+ `+1+` +
+ `+1+` +
+ `+0+` +
+ `+1+`
+
+| `+>+` |
+ Веће |
+ `+defghi > abc+` +
+ `+abc > abc+` +
+ `+abc > defghi+` +
+ `+15 > 2+` |
+ `+1+` +
+ `+0+` +
+ `+0+` +
+ `+1+`
+|===
+
+У случају да су два израза важећи бројеви, поређење се врши употребом бројева у покретном зарезу, у једном од следећих формата:
+
+* цео број (примери: 5, -7)
+* број у покретном зарезу (примери: 5.2, -7.5, 2.83e-2) _(WeeChat ≥ 2.0)_
+* хексадецимални број (пример: 0xA3, -0xA3) _(WeeChat ≥ 2.0)_
+
+Ако желите да форсирате поређење стрингова, можете сваки израз да уоквирите знацима навода, на пример:
+
+* `50 > 100` враћа 0 (поређење бројева)
+* `"50" > "100"` враћа 1 (поређење стрингова)
+
+[[eval_variables]]
+===== Променљиве
+
+Листа развијених променљивих у изразу (према редоследу приоритета, од прве развијене, до последње):
+
+[width="100%", cols="2,8,4,4", options="header"]
+|===
+| Формат | Опис | Примери | Резултати
+
+| `+${raw:xxx}+` +
+ _(WeeChat ≥ 3.1)_ |
+ Сирови стринг (не израчунава се). |
+ `+${raw:${info:version}}+` |
+ `+${info:version}+`
+
+| `+${име}+` |
+ Променљива `name` из хеш табеле _extra_vars_. |
+ `+${име}+` |
+ `+вредност+`
+
+| `+${weechat_xxx_dir}+` |
+ WeeChat директоријум: `+${weechat_config_dir}+`, `+${weechat_data_dir}+`,
+ `+${weechat_cache_dir}+` или `+${weechat_runtime_dir}+`. |
+ `+${weechat_config_dir}+` +
+ `+${weechat_data_dir}+` +
+ `+${weechat_cache_dir}+` +
+ `+${weechat_runtime_dir}+` |
+ `+/home/user/.config/weechat+` +
+ `+/home/user/.local/share/weechat+` +
+ `+/home/user/.cache/weechat+` +
+ `+/run/user/1000/weechat+`
+
+| `+${eval:xxx}+` +
+ _(WeeChat ≥ 1.3)_ |
+ Стринг који се израчунава. |
+ `+${eval:${date:${weechat.look.buffer_time_format}}}+` |
+ `+19:02:45+` (са бојама, ако у опцији weechat.look.buffer_time_format
+ постоје боје)
+
+| `+${eval_cond:xxx}+` +
+ _(WeeChat ≥ 3.1)_ |
+ Стринг који се израчунава као услов. |
+ `+${eval_cond:${window.win_width} > 100}+` |
+ `+1+`
+
+| `+${esc:xxx}+` +
+ `+${\xxx}+` +
+ _(WeeChat ≥ 1.0)_ |
+ Стринг са означеним карактерима. |
+ `+${esc:prefix\tmessage}+` +
+ `+${\ua9}+` |
+ `+prefix<TAB>message+` +
+ `+©+`
+
+| `+${hide:x,стринг}+` +
+ _(WeeChat ≥ 1.1)_ |
+ Стринг са скривеним карактерима (сви карактери у `стринг` се замењују са `x`). |
+ `+${hide:*,password}+` |
+ `+********+`
+
+| `+${cut:макс,суфикс,стринг}+` +
+ `+${cut:+макс,суфикс,стринг}+` +
+ _(WeeChat ≥ 1.8)_ |
+ Стринг са `макс` карактера и необавезним `суфикс` ако се стринг сече. +
+ У формату `+макс`, суфикс се рачуна у максималну дужину. |
+ `+${cut:4,…,this is a test}+` +
+ `+${cut:+4,…,this is a test}+` +
+ `+${cut:2,>>,こんにちは世界}+` |
+ `+this…+` +
+ `+t…+` +
+ `+こん>>+`
+
+| `+${cutscr:макс,суфикс,стринг}+` +
+ `+${cutscr:+макс,суфикс,стринг}+` +
+ _(WeeChat ≥ 1.8)_ |
+ Стринг са `макс` карактера приказаних на екрану, и необавезним `суфикс` ако се стринг сече.
+ У формату `+макс`, суфикс се рачуна у максималну дужину. |
+ `+${cutscr:4,…,this is a test}+` +
+ `+${cutscr:+4,…,this is a test}+` +
+ `+${cutscr:2,>>,こんにちは世界}+` |
+ `+this…+` +
+ `+thi…+` +
+ `+こ>>+`
+
+| `+${rev:xxx}+` +
+ _(WeeChat ≥ 2.2)_ |
+ Обрнути стринг (и кодови боја се обрћу, тако да стринг не би требало да садржи
+ кодове боја). |
+ `+${rev:Hello, world!}+` +
+ `+${rev:Hello, ${color:red}world!}+` |
+ `+!dlrow ,olleH+` +
+ `+!dlrow30F ,olleH+` (нема боје, кôд боје је обрнут)
+
+| `+${revscr:xxx}+` +
+ _(WeeChat ≥ 2.7)_ |
+ Обрнути стринг за екран, кодови боја се не обрћу. |
+ `+${revscr:Hello, world!}+` +
+ `+${revscr:Hello, ${color:red}world!}+` |
+ `+!dlrow ,olleH+` +
+ `+!dlrow ,olleH+` (`pass:[ ,olleH]` у црвеној боји)
+
+| `+${repeat:број,стринг}+` +
+ _(WeeChat ≥ 2.3)_ |
+ Поновљени стринг. |
+ `+${repeat:5,-}+` |
+ `+-----+`
+
+| `+${length:xxx}+` +
+ _(WeeChat ≥ 2.7)_ |
+ Дужина стринга (број UTF-8 карактера), кодови боја се игноришу. |
+ `+${length:test}+` +
+ `+${length:こんにちは世界}+` |
+ `+4+` +
+ `+7+`
+
+| `+${lengthscr:xxx}+` +
+ _(WeeChat ≥ 2.7)_ |
+ Дужина стринга приказаног на екрану, кодови боја се игноришу. |
+ `+${lengthscr:test}+` +
+ `+${lengthscr:こんにちは世界}+` |
+ `+4+` +
+ `+14+`
+
+| `+${re:N}+` +
+ _(WeeChat ≥ 1.1)_ |
+ Ухваћена група у регуларном изразу: `0` = комплетан подударени стринг, `1` до `99` = ухваћена
+ група, `+++` = последња ухваћена група,
+ `#` = индекс последње ухваћене групе _(WeeChat ≥ 1.8)_. |
+ `+${re:0}+` +
+ `+${re:1}+` +
+ `+${re:2}+` +
+ `+${re:+}+` +
+ `+${re:#}+` |
+ `+test1 test2+` +
+ `+test1+` +
+ `+test2+` +
+ `+test2+` +
+ `+2+`
+
+| `+${color:име}+` +
+ _(WeeChat ≥ 0.4.2)_ |
+ Кôд WeeChat боје (име боје има и необавезне атрибуте), погледајте
+ функцију <<_color,color>> у вези подржаних формата. |
+ `+${color:red}red text+` +
+ `+${color:*214}bold orange text+` |
+ `+red text+` (у црвеној) +
+ `+bold orange text+` (подебљано наранџасто)
+
+| `+${modifier:име,подаци,стринг}+` +
+ _(WeeChat ≥ 2.7)_ |
+ Резултат модификатора, погледајте функцију
+ <<_hook_modifier_exec,hook_modifier_exec>>. |
+ `+${modifier:eval_path_home,,~}+` +
+ `+${modifier:eval_path_home,directory=config,%h/weechat.conf}+` |
+ `+/home/user+` +
+ `+/home/user/.config/weechat/weechat.conf+`
+
+| `+${info:име}+` +
+ `+${info:име,аргументи}+` +
+ _(WeeChat ≥ 0.4.3)_ |
+ Инфо из програма WeeChat или додатка, погледајте функцију
+ <<_info_get,info_get>>. |
+ `+${info:version}+` +
+ `+${info:nick_color_name,foo}+` |
+ `+1.0+` +
+ `+lightblue+`
+
+| `+${base_encode:base,xxx}+` +
+ _(WeeChat ≥ 2.9)_ |
+ Стринг кодиран у base 16, 32 или 64. |
+ `+${base_encode:16,test string}+` +
+ `+${base_encode:32,test string}+` +
+ `+${base_encode:64,test string}+` |
+ `+7465737420737472696E67+` +
+ `+ORSXG5BAON2HE2LOM4======+` +
+ `+dGVzdCBzdHJpbmc=+`
+
+| `+${base_decode:base,xxx}+` +
+ _(WeeChat ≥ 2.9)_ |
+ Декодиран стринг из base 16, 32 или 64. |
+ `+${base_decode:16,7465737420737472696E67}+` +
+ `+${base_decode:32,ORSXG5BAON2HE2LOM4======}+` +
+ `+${base_decode:64,dGVzdCBzdHJpbmc=}+` |
+ `+test string+` +
+ `+test string+` +
+ `+test string+`
+
+| `+${date}+` +
+ `+${date:xxx}+` +
+ _(WeeChat ≥ 1.3)_ |
+ Текући датум/време, у прилагођеном формату (погледајте `man strftime`),
+ подразумевани формат је `%F %T`. |
+ `+${date}+` +
+ `+${date:%H:%M:%S}+` |
+ `+2015-06-30 19:02:45+` +
+ `+19:02:45+`
+
+| `+${env:ИМЕ}+` +
+ _(WeeChat ≥ 1.2)_ |
+ Име променљиве окружења `ИМЕ`. |
+ `+${env:HOME}+` |
+ `+/home/user+`
+
+| `+${if:condition}+` +
+ `+${if:condition?true}+`
+ `+${if:condition?true:false}+`
+ _(WeeChat ≥ 1.8)_ |
+ Тернарни оператор са условом, вредност када је услов истинит (није обавезна) и
+ друга вредност када је услов неистинит (није обавезна). Ако се вредности не
+ задају, враћа се „1” или „0”, у зависности од резултата услова. |
+ `+${if:${info:term_width}>80?big:small}+` |
+ `+big+`
+
+| `+${calc:xxx}+` +
+ _(WeeChat ≥ 2.7)_ |
+ Резултат израза, у коме су подржане заграде и следећи
+ оператори: +
+ `+++`: сабирање +
+ `+-+`: одузимање +
+ `+*+`: множење +
+ `+/+`: дељење +
+ `+//+`: резултат дељења без разломљеног дела +
+ `+%+`: остатак при дељењу +
+ `+**+`: степен. |
+ `+${calc:5+2*3}+` +
+ `+${calc:(5+2)*3}+` +
+ `+${calc:10/4}+` +
+ `+${calc:10//4}+` +
+ `+${calc:9.2%3}+` +
+ `+${calc:2**16}+` |
+ `+11+` +
+ `+21+` +
+ `+2.5+` +
+ `+2+` +
+ `+0.2+` +
+ `+65536+`
+
+| `+${translate:xxx}+` +
+ _(WeeChat ≥ 3.2)_ |
+ Преведени стринг (зависи од језика који програм WeeChat користи за приказ порука). |
+ `+${translate:Plugin}+` |
+ `+Extension+` (пример из француског)
+
+| `+${sec.data.име}+` |
+ Вредност обезбеђених података `име`. |
+ `+${sec.data.libera_pass}+` |
+ `+my_password+`
+
+| `+${фајл.одељак.опција}+` |
+ Вредност опције. |
+ `+${weechat.look.buffer_time_format}+` |
+ `+%H:%M:%S+`
+
+| `+${име}+` |
+ Вредност локалне променљиве `име` у баферу. |
+ `+${nick}+` |
+ `+FlashCode+`
+
+| `+${pointer}+` |
+ Променљива `pointer` из хеш табеле _pointers_. |
+ `+${my_pointer}+` |
+ `+0x1234abcd+`
+
+| `+${hdata.пром1.пром2...}+` +
+ `+${hdata[листа].пром1.пром2...}+` |
+ Hdata вредност (показивачи `window` и `buffer` се подразумевано постављају на текући
+ прозор/бафер), `листа` може бити име листе (пример: „gui_buffers”), показивач
+ (пример: „0x1234abcd”) или име показивача (пример: „my_pointer”). |
+ `+${buffer[gui_buffers].full_name}+` +
+ `+${buffer[my_buffer_pointer].full_name}+` +
+ `+${window.buffer.number}+` |
+ `+core.weechat+` +
+ `+1+`
+|===
+
+==== string_dyn_alloc
+
+_WeeChat ≥ 1.8._
+
+Алоцира динамички стринг, са променљивом дужином. + Интерно, структура се алоцира показивачем на стринг, алоцирану величину и текућу дужину стринга.
+
+У свим _pass:[string_dyn_*]_ функцијама се користи само показивач показивача на стринг (_**string_).
+
+Прототип:
+
+[source, C]
+----
+char **weechat_string_dyn_alloc (int size_alloc);
+----
+
+Аргументи:
+
+* _size_alloc_: почетна алоцирана величина (мора бити већа од нуле)
+
+Повратна вредност:
+
+* показивач на динамички стринг
+
+C пример:
+
+[source, C]
+----
+char **string = weechat_string_dyn_alloc (256);
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== string_dyn_copy
+
+_WeeChat ≥ 1.8._
+
+Копира стринг у динамички стринг.
+
+Показивач _*string_ може д асе промени ако се стринг реалоцира (у случају да нема довољно слободног простора за копирање стринга).
+
+Прототип:
+
+[source, C]
+----
+int weechat_string_dyn_copy (char **string, const char *new_string);
+----
+
+Аргументи:
+
+* _string_: показивач на динамички стринг
+* _new_string_: стринг који се копира
+
+Повратна вредност:
+
+* 1 ако је све OK, 0 у случају грешке
+
+C пример:
+
+[source, C]
+----
+char **string = weechat_string_dyn_alloc (256);
+if (weechat_string_dyn_copy (string, "test"))
+{
+ /* OK */
+}
+else
+{
+ /* грешка */
+}
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== string_dyn_concat
+
+_WeeChat ≥ 1.8, ажурирано у верзији 3.0._
+
+Надовезује стринг на динамички стринг.
+
+Показивач на стринг _*string_ може да се промени ако се стринг реалоцира (у случају да нема довољно простора за надовезивање стринга).
+
+Прототип:
+
+[source, C]
+----
+int weechat_string_dyn_concat (char **string, const char *add, int bytes);
+----
+
+Аргументи:
+
+* _string_: показивач на динамички стринг
+* _add_: стринг који се додаје
+* _bytes_: максимални број бајтова у _add_ који могу да се надовежу, мора бити мање или једнако дужини _add_ (-1 = аутоматски: надовезује се комплетан стринг _add_) _(WeeChat ≥ 3.0)_
+
+Повратна вредност:
+
+* 1 ако је све OK, 0 у случају грешке
+
+C пример:
+
+[source, C]
+----
+char **string = weechat_string_dyn_alloc (256);
+if (weechat_string_dyn_copy (string, "test"))
+{
+ if (weechat_string_dyn_concat (string, "abc", -1))
+ {
+ /* ... */
+ }
+}
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== string_dyn_free
+
+_WeeChat ≥ 1.8._
+
+Ослобађа динамички стринг.
+
+Прототип:
+
+[source, C]
+----
+char *weechat_string_dyn_free (char **string, int free_string);
+----
+
+Аргументи:
+
+* _string_: показивач на динамички стринг
+* _free_string_: ослобађање самог стринга; ако је 0, онда садржај _*string_ остаје важећи и након позива ове функције
+
+Повратна вредност:
+
+* показивач на стринг ако је _free_string_ 0, у супротном NULL
+
+C пример:
+
+[source, C]
+----
+char **string = weechat_string_dyn_alloc (256);
+if (weechat_string_dyn_concat (string, "test"))
+{
+ /* OK */
+}
+else
+{
+ /* грешка */
+}
+/* ... */
+weechat_string_dyn_free (string, 1);
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+[[utf-8]]
+=== UTF-8
+
+Неке UTF-8 стринг функције.
+
+==== utf8_has_8bits
+
+Проверава да ли стринг има 8-битне карактере.
+
+Прототип:
+
+[source, C]
+----
+int weechat_utf8_has_8bits (const char *string);
+----
+
+Аргументи:
+
+* _string_: стринг
+
+Повратна вредност:
+
+* 1 ако стринг има 8-битне карактере, 0 ако има само 7-битне карактере
+
+C пример:
+
+[source, C]
+----
+if (weechat_utf8_has_8bits (string))
+{
+ /* ... */
+}
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== utf8_is_valid
+
+_Ажурирано у верзији 1.4._
+
+Проверава да ли је стринг важећи UTF-8.
+
+Прототип:
+
+[source, C]
+----
+int weechat_utf8_is_valid (const char *string, int length, char **error);
+----
+
+Аргументи:
+
+* _string_: стринг
+* _length_: максимални број UTF-8 карактера који може да се провери; ако је ≤ 0, проверава се цео стринг _(WeeChat ≥ 1.4)_
+* _error_: ако није NULL, _*error_ се поставља на показивач на први неважећи UTF-8 карактер у стрингу, ако такав постоји
+
+Повратна вредност:
+
+* 1 ако је UTF-8 стринг исправан, у супротном 0
+
+C пример:
+
+[source, C]
+----
+char *error;
+if (weechat_utf8_is_valid (string, -1, &error))
+{
+ /* ... */
+}
+else
+{
+ /* "error" показује на при неважећи карактер */
+}
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== utf8_normalize
+
+Нормализује UTF-8 стринг: уклања све карактере који нису UTF-8 и замењује их карактером.
+
+Прототип:
+
+[source, C]
+----
+void weechat_utf8_normalize (char *string, char replacement);
+----
+
+Аргументи:
+
+* _string_: стринг
+* _replacement_: карактер којим се замењују неисправни карактери
+
+C пример:
+
+[source, C]
+----
+weechat_utf8_normalize (string, '?');
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== utf8_prev_char
+
+_Ажурирано у верзији 1.3._
+
+Враћа показивач на претходни UTF-8 карактер у стрингу.
+
+Прототип:
+
+[source, C]
+----
+const char *weechat_utf8_prev_char (const char *string_start,
+ const char *string);
+----
+
+Аргументи:
+
+* _string_start_: почетак стринга (функција неће вратити карактер пре овог показивача)
+* _string_: показивач на стринг (мора бити ≥ _string_start_)
+
+Повратна вредност:
+
+* показивач на претходни UTF-8 карактер, NULL у случају да се не пронађе (достигнут је почетак стринга) (_WeeChat ≥ 1.3_: враћени показивач је _const char *_ уместо _char *_)
+
+C пример:
+
+[source, C]
+----
+const char *prev_char = weechat_utf8_prev_char (string, ptr_in_string);
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== utf8_next_char
+
+_Ажурирано у верзији 1.3._
+
+Враћа показивач на наредни UTF-8 карактер у стрингу.
+
+Прототип:
+
+[source, C]
+----
+const char *weechat_utf8_next_char (const char *string);
+----
+
+Аргументи:
+
+* _string_: стринг
+
+Повратна вредност:
+
+* показивач на наредни UTF-8 карактер, NULL ако се не пронађе (достигнут је крај стринга) (_WeeChat ≥ 1.3_: враћени показивач је _const char *_ уместо _char *_)
+
+C пример:
+
+[source, C]
+----
+const char *next_char = weechat_utf8_next_char (string);
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== utf8_char_int
+
+Враћа UTF-8 карактер као цео број.
+
+Прототип:
+
+[source, C]
+----
+int weechat_utf8_char_int (const char *string);
+----
+
+Аргументи:
+
+* _string_: стринг
+
+Повратна вредност:
+
+* UTF-8 карактер као цео број
+
+C пример:
+
+[source, C]
+----
+int char_int = weechat_utf8_char_int ("être"); /* "ê" као цео број */
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== utf8_char_size
+
+Враћа величину UTF-8 карактера (у бајтовима).
+
+Прототип:
+
+[source, C]
+----
+int weechat_utf8_char_size (const char *string);
+----
+
+Аргументи:
+
+* _string_: стринг
+
+Повратна вредност:
+
+* величина UTF-8 карактера (у бајтовима)
+
+C пример:
+
+[source, C]
+----
+int char_size = weechat_utf8_char_size ("être"); /* == 2 */
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== utf8_strlen
+
+Враћа дужину UTF-8 стринга (у UTF-8 карактерима).
+
+Прототип:
+
+[source, C]
+----
+int weechat_utf8_strlen (const char *string);
+----
+
+Аргументи:
+
+* _string_: стринг
+
+Повратна вредност:
+
+* дужина UTF-8 стринга (број UTF-8 карактера)
+
+C пример:
+
+[source, C]
+----
+int length = weechat_utf8_strlen ("chêne"); /* == 5 */
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== utf8_strnlen
+
+Враћа дужину UTF-8 стринга (у UTF-8 карактерима), за максимално _bytes_ у стрингу.
+
+Прототип:
+
+[source, C]
+----
+int weechat_utf8_strnlen (const char *string, int bytes);
+----
+
+Аргументи:
+
+* _string_: стринг
+* _bytes_: максимални број бајтова
+
+Повратна вредност:
+
+* дужина UTF-8 стринга (број UTF-8 карактера)
+
+C пример:
+
+[source, C]
+----
+int length = weechat_utf8_strnlen ("chêne", 4); /* == 3 */
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== utf8_strlen_screen
+
+Враћа број карактера потребних на екрану да се прикаже UTF-8 стринг.
+
+Прототип:
+
+[source, C]
+----
+int weechat_utf8_strlen_screen (const char *string);
+----
+
+Аргументи:
+
+* _string_: стринг
+
+Повратна вредност:
+
+* број карактера на екрану који су потребни да се испише UTF-8 стринг
+
+C пример:
+
+[source, C]
+----
+int length_on_screen = weechat_utf8_strlen_screen ("é"); /* == 1 */
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== utf8_charcmp
+
+_Ажурирано у верзији 1.0._
+
+Пореди два UTF-8 карактера.
+
+Прототип:
+
+[source, C]
+----
+int weechat_utf8_charcmp (const char *string1, const char *string2);
+----
+
+Аргументи:
+
+* _string1_: први стринг за поређење
+* _string2_: други стринг за поређење
+
+Повратна вредност:
+
+* -1 ако је string1 < string2
+* 0 ако је string1 == string2
+* 1 ако је string1 > string2
+
+C пример:
+
+[source, C]
+----
+int diff = weechat_utf8_charcmp ("aaa", "ccc"); /* == -2 */
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== utf8_charcasecmp
+
+_Ажурирано у верзији 1.0._
+
+Пореди два UTF-8 карактера, уз игнорисање разлике у величини слова.
+
+Прототип:
+
+[source, C]
+----
+int weechat_utf8_charcasecmp (const char *string1, const char *string2);
+----
+
+Аргументи:
+
+* _string1_: први стринг за поређење
+* _string2_: други стринг за поређење
+
+Повратна вредност:
+
+* -1 ако је string1 < string2
+* 0 ако је string1 == string2
+* 1 ако је string1 > string2
+
+C пример:
+
+[source, C]
+----
+int diff = weechat_utf8_charcasecmp ("aaa", "CCC"); /* == -2 */
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== utf8_char_size_screen
+
+Враћа број карактера потребних на екрану за испис UTF-8 карактера.
+
+Прототип:
+
+[source, C]
+----
+int weechat_utf8_char_size_screen (const char *string);
+----
+
+Аргументи:
+
+* _string_: стринг
+
+Повратна вредност:
+
+* број карактера на екрану потребних за испис UTF-8 карактера
+
+C пример:
+
+[source, C]
+----
+int length_on_screen = weechat_utf8_char_size_screen ("é"); /* == 1 */
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== utf8_add_offset
+
+_Ажурирано у верзији 1.3._
+
+Помера унапред N карактера у UTF-8 стрингу.
+
+Прототип:
+
+[source, C]
+----
+const char *weechat_utf8_add_offset (const char *string, int offset);
+----
+
+Аргументи:
+
+* _string_: стринг
+* _offset_: број карактера
+
+Повратна вредност:
+
+* показивач на стринг, N карактера иза (NULL ако не може да се достигне) (_WeeChat ≥ 1.3_: враћени показивач је _const char *_ уместо _char *_)
+
+C пример:
+
+[source, C]
+----
+const char *str = "chêne";
+const char *str2 = weechat_utf8_add_offset (str, 3); /* показује на "ne" */
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== utf8_real_pos
+
+Враћа реалну позицију у UTF-8 стрингу.
+
+Прототип:
+
+[source, C]
+----
+int weechat_utf8_real_pos (const char *string, int pos);
+----
+
+Аргументи:
+
+* _string_: стринг
+* _pos_: позиција (број карактера)
+
+Повратна вредност:
+
+* реална позиција (у бајтовима)
+
+C пример:
+
+[source, C]
+----
+int pos = weechat_utf8_real_pos ("chêne", 3); /* == 4 */
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== utf8_pos
+
+Враћа позицију у UTF-8 стрингу.
+
+Прототип:
+
+[source, C]
+----
+int weechat_utf8_pos (const char *string, int real_pos);
+----
+
+Аргументи:
+
+* _string_: стринг
+* _real_pos_: позиција (бајтови)
+
+Повратна вредност:
+
+* позиција (број карактера)
+
+C пример:
+
+[source, C]
+----
+int pos = weechat_utf8_pos ("chêne", 4); /* == 3 */
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== utf8_strndup
+
+Враћа дупликат стринга, са максимално _length_ карактера.
+
+Прототип:
+
+[source, C]
+----
+char *weechat_utf8_strndup (const char *string, int length);
+----
+
+Аргументи:
+
+* _string_: стринг
+* _length_: макс број карактера који може да се дуплира
+
+Повратна вредност:
+
+* дуплирани стринг (након употребе мора да се ослободи позивом „free”)
+
+C пример:
+
+[source, C]
+----
+char *string = weechat_utf8_strndup ("chêne", 3); /* враћа "chê" */
+/* ... */
+free (string);
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+[[crypto]]
+=== Криптографија
+
+Неке криптографске функције.
+
+==== crypto_hash
+
+_WeeChat ≥ 2.8._
+
+Израчунава хеш података.
+
+Прототип:
+
+[source, C]
+----
+int weechat_crypto_hash (const void *data, int data_size, const char *hash_algo,
+ void *hash, int *hash_size);
+----
+
+Аргументи:
+
+* _data_: подаци који треба да се хеширају
+* _data_size_: број бајтова у _data_ који се хешира
+* _hash_algo_: хеш алгоритам, погледајте табелу испод
+* _hash_: показивач на хеш променљиву која се користи за чување резултата хеширања (бафер мора бити довољне величине која зависи од алгоритма, погледајте табелу испод)
+* _hash_size_: показивач на променљиву која се користи за чување величине израчунатог хеша (у бајтовима) (може да буде NULL)
+
+[[crypto_hash_algorithms]]
+Подржани хеш алгоритми:
+
+[width="100%", cols="2,2,3,6", options="header"]
+|===
+| Вредност | Алгоритам | Величина хеша | Напомене
+| `+crc32+` | CRC32 | 4 бајта (32 бита) | Није хеш алгоритам у криптографском смислу.
+| `+md5+` | MD5 | 16 бајтова (128 бита) | *Слаб*, не препоручује се за криптографску употребу.
+| `+sha1+` | SHA-1 | 20 бајтова (160 бита) | *Слаб*, не препоручује се за криптографску употребу.
+| `+sha224+` | SHA-224 | 28 бајтова (224 бита) |
+| `+sha256+` | SHA-256 | 32 бајта (256 бита) |
+| `+sha384+` | SHA-384 | 48 бајтова (384 бита) |
+| `+sha512+` | SHA-512 | 64 бајта (512 бита) |
+| `+sha3-224+` | SHA3-224 | 28 бајтова (224 бита) | Алгоритам је доступан у libgcrypt ≥ 1.7.0.
+| `+sha3-256+` | SHA3-256 | 32 бајта (256 бита) | Алгоритам је доступан у libgcrypt ≥ 1.7.0.
+| `+sha3-384+` | SHA3-384 | 48 бајтова (384 бита) | Алгоритам је доступан у libgcrypt ≥ 1.7.0.
+| `+sha3-512+` | SHA3-512 | 64 бајта (512 бита) | Алгоритам је доступан у libgcrypt ≥ 1.7.0.
+|===
+
+Повратна вредност:
+
+* 1 ако је све OK, 0 у случају грешке
+
+C пример:
+
+[source, C]
+----
+const char *data = "abcdefghijklmnopqrstuvwxyz";
+char hash[256 / 8];
+int rc, hash_size;
+rc = weechat_crypto_hash (data, strlen (data), "sha256", hash, &hash_size);
+/* rc == 1, hash_size == 32 и хеш је бафер са:
+ 71 c4 80 df 93 d6 ae 2f 1e fa d1 44 7c 66 c9 52 5e 31 62 18 cf 51 fc 8d 9e d8 32 f2 da f1 8b 73 */
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== crypto_hash_pbkdf2
+
+_WeeChat ≥ 2.8._
+
+Израчунава PKCS#5 Passphrase Based Key Derivation Function број 2 (PBKDF2) хеш података.
+
+Прототип:
+
+[source, C]
+----
+int weechat_crypto_hash_pbkdf2 (const void *data, int data_size,
+ const char *hash_algo,
+ const void *salt, int salt_size,
+ int iterations,
+ void *hash, int *hash_size);
+----
+
+Аргументи:
+
+* _data_: подаци који треба да се хеширају
+* _data_size_: број бајтова у _data_ који се хешира
+* _hash_algo_: хеш алгоритам који се користи у функцији за извођење кључа, погледајте табелу у функцији <<crypto_hash_algorithms,crypto_hash>>
+* _salt_: со
+* _salt_size_: број бајтова у _salt_
+* _iterations_: број итерација
+* _hash_: показивач на хеш променљиву која се користи за чување резултата (бафер мора бити довољне величине која зависи од алгоритма, погледајте табелу у функцији <<crypto_hash_algorithms,crypto_hash>>)
+* _hash_size_: показивач на променљиву која се користи за чување величине израчунатог хеша (у бајтовима) (може да буде NULL)
+
+Повратна вредност:
+
+* 1 ако је све OK, 0 у случају грешке
+
+C пример:
+
+[source, C]
+----
+const char *data = "abcdefghijklmnopqrstuvwxyz";
+const char *salt = "12345678901234567890123456789012"; /* 32 bytes */
+char hash[256 / 8];
+int rc, hash_size;
+rc = weechat_crypto_hash_pbkdf2 (data, strlen (data), "sha256", salt, strlen (salt), 100000,
+ hash, &hash_size);
+/* rc == 1, hash_size == 32 и хеш је бафер са:
+ 99 b3 5e 42 53 d1 a7 a8 49 c1 dc 2c e2 53 c2 b6 6d a1 8b dc 6e 78 a7 06 e0 ef 34 db 0a 7a a2 bb */
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== crypto_hmac
+
+_WeeChat ≥ 3.2._
+
+Израчунава keyed-hash message authentication code (HMAC).
+
+Прототип:
+
+[source, C]
+----
+int weechat_crypto_hmac (const void *key, int key_size, const void *message, int message_size,
+ int hash_algo, void *hash, int *hash_size);
+----
+
+Аргументи:
+
+* _key_: кључ
+* _key_size_: број бајтова у _key_
+* _message_: порука
+* _message_size_: број бајтова у _message_
+* _hash_algo_: хеш алгоритам, погледајте табелу у функцији <<crypto_hash_algorithms,crypto_hash>>
+* _hash_: показивач на хеш променљиву која се користи за чување резултата (бафер мора бити довољне величине која зависи од алгоритма, погледајте табелу у функцији <<crypto_hash_algorithms,crypto_hash>>)
+* _hash_size_: показивач на променљиву која се користи за чување величине израчунатог хеша (у бајтовима) (може да буде NULL)
+
+Повратна вредност:
+
+* 1 ако је све OK, 0 у случају грешке
+
+C пример:
+
+[source, C]
+----
+const char *key = "the key";
+const char *message = "the message";
+char hash[256 / 8];
+int rc, hash_size;
+rc = weechat_crypto_hmac (key, strlen (key), message, strlen (message), "sha256", hash, &hash_size);
+/* rc == 1, hash_size == 32 и хеш је бафер са:
+ 47 36 67 02 fc bc b1 97 a4 25 e6 7a b9 52 92 bd 15 9a 66 91 9c fb 94 b0 b4 9a 39 cb c0 24 2d 7b */
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+[[directories]]
+=== Директоријуми
+
+Неке функције у вези директоријума.
+
+==== mkdir_home
+
+_Ажурирано у верзији 3.2._
+
+Креира директоријум у WeeChat почетном директоријуму.
+
+Прототип:
+
+[source, C]
+----
+int weechat_mkdir_home (char *directory, int mode);
+----
+
+Аргументи:
+
+* _directory_: име директоријума који трба да се креира; може почети једним од следећих стрингова чиме се форсира одређени WeeChat директоријум (WeeChat ≥ 3.2):
+** `${weechat_config_dir}`
+** `${weechat_data_dir}` (подразумевано)
+** `${weechat_cache_dir}`
+** `${weechat_runtime_dir}`
+* _mode_: режим за директоријум
+
+Повратна вредност:
+
+* 1 ако је директоријум успешно креиран, 0 ако је дошло до грешке
+
+C пример:
+
+[source, C]
+----
+if (!weechat_mkdir_home ("${weechat_cache_dir}/temp", 0755))
+{
+ /* грешка */
+}
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def mkdir_home(directory: str, mode: int) -> int: ...
+
+# пример
+weechat.mkdir_home("${weechat_cache_dir}/temp", 0755)
+----
+
+==== mkdir
+
+Креира директоријум.
+
+Прототип:
+
+[source, C]
+----
+int weechat_mkdir (char *directory, int mode);
+----
+
+Аргументи:
+
+* _directory_: име директоријума који се креира
+* _mode_: режим за директоријум
+
+Повратна вредност:
+
+* 1 ако је директоријум успешно креиран, 0 ако је дошло до грешке
+
+C пример:
+
+[source, C]
+----
+if (!weechat_mkdir ("/tmp/mydir", 0755))
+{
+ /* грешка */
+}
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def mkdir(directory: str, mode: int) -> int: ...
+
+# пример
+weechat.mkdir("/tmp/mydir", 0755)
+----
+
+==== mkdir_parents
+
+Креира директоријум и ако је потребно, и родитељ директоријуме.
+
+Прототип:
+
+[source, C]
+----
+int weechat_mkdir_parents (char *directory, int mode);
+----
+
+Аргументи:
+
+* _directory_: име директоријума који се креира
+* _mode_: режим за директоријум
+
+Повратна вредност:
+
+* 1 ако је директоријум успешно креиран, 0 ако је дошло до грешке
+
+C пример:
+
+[source, C]
+----
+if (!weechat_mkdir_parents ("/tmp/my/dir", 0755))
+{
+ /* грешка */
+}
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def mkdir_parents(directory: str, mode: int) -> int: ...
+
+# пример
+weechat.mkdir_parents("/tmp/my/dir", 0755)
+----
+
+==== exec_on_files
+
+_Ажурирано у верзијама 1.5, 2.0._
+
+Проналази фајлове у директоријуму и извршава функцију повратног позива за сваки фајл.
+
+Прототип:
+
+[source, C]
+----
+void weechat_exec_on_files (const char *directory,
+ int recurse_subdirs,
+ int hidden_files,
+ void (*callback)(void *data,
+ const char *filename),
+ void *callback_data);
+----
+
+Аргументи:
+
+* _directory_: директоријум за претрагу фајлова
+* _recurse_subdirs_: 1 да се спушта у поддиректоријуме _(WeeChat ≥ 2.0)_
+* _hidden_files_: 1 да се укључе и скривени фајлови, у супротном 0
+* _callback_: функција која се позива за сваки пронађени фајл, аргументи:
+** _void *data_: показивач
+** _const char *filename_: пронађено име фајла
+* _callback_data_: показивач који се прослеђује функцији повратног позива када је позове програм WeeChat
+
+C пример:
+
+[source, C]
+----
+void callback (void *data, const char *filename)
+{
+ /* ... */
+}
+...
+weechat_exec_on_files ("/tmp", 0, 0, &callback, NULL);
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== file_get_content
+
+_WeeChat ≥ 0.3.1._
+
+Враћа садржај текст фајла у стрингу.
+
+Прототип:
+
+[source, C]
+----
+char *weechat_file_get_content (const char *filename);
+----
+
+Аргументи:
+
+* _filename_: путања и име фајла
+
+Повратна вредност:
+
+* садржај фајла као стринг (након употребе мора да се ослободи позивом „free”)
+
+C пример:
+
+[source, C]
+----
+char *content;
+
+content = weechat_file_get_content ("/tmp/test.txt");
+/* ... */
+free (content);
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+[[util]]
+=== Алати
+
+Неке корисне функције.
+
+==== util_timeval_cmp
+
+Пореди две „timeval” структуре.
+
+Прототип:
+
+[source, C]
+----
+int weechat_util_timeval_cmp (struct timeval *tv1, struct timeval *tv2);
+----
+
+Аргументи:
+
+* _tv1_: прва „timeval” структура
+* _tv2_: друга „timeval” структура
+
+Повратна вредност:
+
+* -1 ако је tv1 < tv2
+* нула ако је tv1 == tv2
+* +1 ако је tv1 > tv2
+
+C пример:
+
+[source, C]
+----
+if (weechat_util_timeval_cmp (&tv1, &tv2) > 0)
+{
+ /* tv1 > tv2 */
+}
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== util_timeval_diff
+
+_Ажурирано у верзији 1.1._
+
+Враћа разлику (у микросекундама) између две „timeval” структуре.
+
+Прототип:
+
+[source, C]
+----
+long long weechat_util_timeval_diff (struct timeval *tv1, struct timeval *tv2);
+----
+
+Аргументи:
+
+* _tv1_: прва „timeval” структура
+* _tv2_: друга „timeval” структура
+
+Повратна вредност:
+
+* разлика у микросекундама
+
+[NOTE]
+У програму WeeChat верзије ≤ 1.0, враћена вредност је била у милисекундама.
+
+C пример:
+
+[source, C]
+----
+long long diff = weechat_util_timeval_diff (&tv1, &tv2);
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== util_timeval_add
+
+_Ажурирано у верзији 1.1._
+
+Додаје timeval структури интервал (у микросекундама).
+
+Прототип:
+
+[source, C]
+----
+void weechat_util_timeval_add (struct timeval *tv, long long interval);
+----
+
+Аргументи:
+
+* _tv_: timeval структура
+* _interval_: интервал (у микросекундама)
+
+[NOTE]
+У програму WeeChat верзије ≤ 1.0, интервал је изражаван у милисекундама.
+
+C пример:
+
+[source, C]
+----
+weechat_util_timeval_add (&tv, 2000000); /* додаје 2 секунде */
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== util_get_time_string
+
+_WeeChat ≥ 0.3.2, ажурирано у верзији 1.3._
+
+Враћа датум/време као стринг изграђен помоћу „strftime” у формату дефинисаном у опцији _weechat.look.time_format_.
+
+Прототип:
+
+[source, C]
+----
+const char *weechat_util_get_time_string (const time_t *date);
+----
+
+Аргументи:
+
+* _date_: показивач на датум
+
+Повратна вредност:
+
+* показивач на стринг са датумом/временом
+
+C пример:
+
+[source, C]
+----
+time_t date = time (NULL);
+weechat_printf (NULL, "date: %s",
+ weechat_util_get_time_string (&date));
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== util_version_number
+
+_WeeChat ≥ 0.3.9._
+
+Конвертује стринг са верзијом програма WeeChat у број.
+
+Прототип:
+
+[source, C]
+----
+int weechat_util_version_number (const char *version);
+----
+
+Аргументи:
+
+* _version_: верзија програма WeeChat као стринг (пример: „0.3.9” или „0.3.9-dev”)
+
+C пример:
+
+[source, C]
+----
+version_number = weechat_util_version_number ("0.3.8"); /* == 0x00030800 */
+version_number = weechat_util_version_number ("0.3.9-dev"); /* == 0x00030900 */
+version_number = weechat_util_version_number ("0.3.9-rc1"); /* == 0x00030900 */
+version_number = weechat_util_version_number ("0.3.9"); /* == 0x00030900 */
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+[[sorted_lists]]
+=== Сортиране листе
+
+Функције сортираних листи.
+
+==== list_new
+
+Креира нову листу.
+
+Прототип:
+
+[source, C]
+----
+struct t_weelist *weechat_list_new ();
+----
+
+Повратна вредност:
+
+* показивач на нову листу
+
+C пример:
+
+[source, C]
+----
+struct t_weelist *list = weechat_list_new ();
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def list_new() -> str: ...
+
+# пример
+list = weechat.list_new()
+----
+
+==== list_add
+
+Додаје ставку у листу.
+
+Прототип:
+
+[source, C]
+----
+struct t_weelist_item *weechat_list_add (struct t_weelist *weelist,
+ const char *data,
+ const char *where,
+ void *user_data);
+----
+
+Аргументи:
+
+* _weelist_: показивач на листу
+* _data_: подаци који се умећу у листу
+* _where_: позиција у листи:
+** _WEECHAT_LIST_POS_SORT_: додавање у листу, уз одржање уређености
+** _WEECHAT_LIST_POS_BEGINNING_: додавање на почетак листе
+** _WEECHAT_LIST_POS_END_: додавање на крај листе
+* _user_data_: било који показивач
+
+Повратна вредност:
+
+* показивач на нову ставку
+
+C пример:
+
+[source, C]
+----
+struct t_weelist_item *my_item =
+ weechat_list_add (list, "my data", WEECHAT_LIST_POS_SORT, NULL);
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def list_add(list: str, data: str, where: str, user_data: str) -> str: ...
+
+# пример
+item = weechat.list_add(list, "my data", weechat.WEECHAT_LIST_POS_SORT, "")
+----
+
+==== list_search
+
+Претражује ставку у листи.
+
+Прототип:
+
+[source, C]
+----
+struct t_weelist_item *weechat_list_search (struct t_weelist *weelist,
+ const char *data);
+----
+
+Аргументи:
+
+* _weelist_: показивач на листу
+* _data_: подаци који се траже у листи
+
+Повратна вредност:
+
+* показивач на пронађену ставку, NULL у случају да се ставка не пронађе
+
+C пример:
+
+[source, C]
+----
+struct t_weelist_item *item = weechat_list_search (list, "my data");
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def list_search(list: str, data: str) -> str: ...
+
+# пример
+item = weechat.list_search(list, "my data")
+----
+
+==== list_search_pos
+
+_WeeChat ≥ 0.3.4._
+
+Тражи позицију ставке у листи.
+
+Прототип:
+
+[source, C]
+----
+int weechat_list_search_pos (struct t_weelist *weelist,
+ const char *data);
+----
+
+Аргументи:
+
+* _weelist_: показивач на листу
+* _data_: подаци који се траже у листи
+
+Повратна вредност:
+
+* позиција пронађене ставке, -1 у случају да се ставка не пронађе
+
+C пример:
+
+[source, C]
+----
+int pos_item = weechat_list_search_pos (list, "my data");
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def list_search_pos(list: str, data: str) -> int: ...
+
+# пример
+pos_item = weechat.list_search_pos(list, "my data")
+----
+
+==== list_casesearch
+
+Тражи ставку у листи, без разликовања величине слова.
+
+Прототип:
+
+[source, C]
+----
+struct t_weelist_item *weechat_list_casesearch (struct t_weelist *weelist,
+ const char *data);
+----
+
+Аргументи:
+
+* _weelist_: показивач на листу
+* _data_: подаци који се траже у листи
+
+Повратна вредност:
+
+* показивач на пронађену ставку, NULL у случају да се ставка не пронађе
+
+C пример:
+
+[source, C]
+----
+struct t_weelist_item *item = weechat_list_casesearch (list, "my data");
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def list_casesearch(list: str, data: str) -> str: ...
+
+# пример
+item = weechat.list_casesearch(list, "my data")
+----
+
+==== list_casesearch_pos
+
+_WeeChat ≥ 0.3.4._
+
+Тражи позицију ставке у листи, без разликовања величине слова.
+
+Прототип:
+
+[source, C]
+----
+int weechat_list_casesearch_pos (struct t_weelist *weelist,
+ const char *data);
+----
+
+Аргументи:
+
+* _weelist_: показивач на листу
+* _data_: подаци који се траже у листи
+
+Повратна вредност:
+
+* позиција пронађене ставке, -1 у случају да се ставка не пронађе
+
+C пример:
+
+[source, C]
+----
+int pos_item = weechat_list_casesearch_pos (list, "my data");
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def list_casesearch_pos(list: str, data: str) -> int: ...
+
+# пример
+pos_item = weechat.list_casesearch_pos(list, "my data")
+----
+
+==== list_get
+
+Враћа ставку са одређене позиције у листи.
+
+Прототип:
+
+[source, C]
+----
+struct t_weelist_item *weechat_list_get (struct t_weelist *weelist,
+ int position);
+----
+
+Аргументи:
+
+* _weelist_: показивач на листу
+* _position_: позиција у листи (прва ставка је 0)
+
+Повратна вредност:
+
+* показивач на пронађену ставку, NULL у случају да се ставка не пронађе
+
+C пример:
+
+[source, C]
+----
+struct t_weelist_item *item = weechat_list_get (list, 0); /* прва ставка */
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def list_get(list: str, position: int) -> str: ...
+
+# пример
+item = weechat.list_get(list, 0)
+----
+
+==== list_set
+
+Поставља ставку на нову вредност.
+
+Прототип:
+
+[source, C]
+----
+void weechat_list_set (struct t_weelist_item *item, const char *value);
+----
+
+Аргументи:
+
+* _item_: показивач на ставку
+* _value_: нова вредност ставке
+
+C пример:
+
+[source, C]
+----
+weechat_list_set (item, "new data");
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def list_set(item: str, value: str) -> int: ...
+
+# пример
+weechat.list_set(item, "new data")
+----
+
+==== list_next
+
+Враћа наредну ставку у листи.
+
+Прототип:
+
+[source, C]
+----
+struct t_weelist_item *weechat_list_next (struct t_weelist_item *item);
+----
+
+Аргументи:
+
+* _item_: показивач на ставку
+
+Повратна вредност:
+
+* показивач на наредну ставку, NULL у случају да је показивач био на последњој ставки листе
+
+C пример:
+
+[source, C]
+----
+struct t_weelist_item *next_item = weechat_list_next (item);
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def list_next(item: str) -> str: ...
+
+# пример
+item = weechat.list_next(item)
+----
+
+==== list_prev
+
+Враћа претходну ставку у листи.
+
+Прототип:
+
+[source, C]
+----
+struct t_weelist_item *weechat_list_prev (struct t_weelist_item *item);
+----
+
+Аргументи:
+
+* _item_: показивач на ставку
+
+Повратна вредност:
+
+* показивач на претходну ставку, NULL у случају да је показивач био на првој ставки листе
+
+C пример:
+
+[source, C]
+----
+struct t_weelist_item *prev_item = weechat_list_prev (item);
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def list_prev(item: str) -> str: ...
+
+# пример
+item = weechat.list_prev(item)
+----
+
+==== list_string
+
+Враћа стринг вредност ставке.
+
+Прототип:
+
+[source, C]
+----
+const char *weechat_list_string (struct t_weelist_item *item);
+----
+
+Аргументи:
+
+* _item_: показивач на ставку
+
+Повратна вредност:
+
+* стринг вредност ставке
+
+C пример:
+
+[source, C]
+----
+weechat_printf (NULL, "вредност ставке: %s", weechat_list_string (item));
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def list_string(item: str) -> str: ...
+
+# пример
+weechat.prnt("", "вредност ставке: %s" % weechat.list_string(item))
+----
+
+==== list_user_data
+
+_WeeChat ≥ 2.6._
+
+Враћа показивач на корисничке податке ставке.
+
+Прототип:
+
+[source, C]
+----
+void *weechat_list_user_data (struct t_weelist_item *item);
+----
+
+Аргументи:
+
+* _item_: показивач на ставку
+
+Повратна вредност:
+
+* показивач на корисничке податке ставке
+
+C пример:
+
+[source, C]
+----
+weechat_printf (NULL, "кориснички подаци ставке: 0x%lx", weechat_list_user_data (item));
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== list_size
+
+Враћа величину листе (број ставки).
+
+Прототип:
+
+[source, C]
+----
+char *weechat_list_size (struct t_weelist *weelist);
+----
+
+Аргументи:
+
+* _weelist_: показивач на листу
+
+Повратна вредност:
+
+* величина листе (број ставки), 0 у случају да је листа празна
+
+C пример:
+
+[source, C]
+----
+weechat_printf (NULL, "величина листе: %d", weechat_list_size (list));
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def list_size(list: str) -> int: ...
+
+# пример
+weechat.prnt("", "величина листе: %d" % weechat.list_size(list))
+----
+
+==== list_remove
+
+Уклања ставку из листе.
+
+Прототип:
+
+[source, C]
+----
+void weechat_list_remove (struct t_weelist *weelist,
+ struct t_weelist_item *item);
+----
+
+Аргументи:
+
+* _weelist_: показивач на листу
+* _item_: показивач на ставку
+
+C пример:
+
+[source, C]
+----
+weechat_list_remove (list, item);
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def list_remove(list: str, item: str) -> int: ...
+
+# пример
+weechat.list_remove(list, item)
+----
+
+==== list_remove_all
+
+Уклања све ставке из листе.
+
+Прототип:
+
+[source, C]
+----
+void weechat_list_remove_all (struct t_weelist *weelist);
+----
+
+Аргументи:
+
+* _weelist_: показивач на листу
+
+C пример:
+
+[source, C]
+----
+weechat_list_remove_all (list);
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def list_remove_all(list: str) -> int: ...
+
+# пример
+weechat.list_remove_all(list)
+----
+
+==== list_free
+
+Ослобађа меморију коју заузима листа.
+
+Прототип:
+
+[source, C]
+----
+void weechat_list_free (struct t_weelist *weelist);
+----
+
+Аргументи:
+
+* _weelist_: показивач на листу
+
+C пример:
+
+[source, C]
+----
+weechat_list_free (list);
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def list_free(list: str) -> int: ...
+
+# пример
+weechat.list_free(list)
+----
+
+[[array_lists]]
+=== Низ листи
+
+Функције низа листи.
+
+Низ листи је листа показивача са динамичком величином и необавезним сортирањем.
+
+==== arraylist_new
+
+_WeeChat ≥ 1.8._
+
+Креира нови низ листи.
+
+Прототип:
+
+[source, C]
+----
+struct t_arraylist *weechat_arraylist_new (int initial_size,
+ int sorted,
+ int allow_duplicates,
+ int (*callback_cmp)(void *data,
+ struct t_arraylist *arraylist,
+ void *pointer1,
+ void *pointer2),
+ void *callback_cmp_data,
+ void (*callback_free)(void *data,
+ struct t_arraylist *arraylist,
+ void *pointer),
+ void *callback_free_data);
+----
+
+Аргументи:
+
+* _initial_size_: почетна величина низа листи (не број ставки)
+* _sorted_: 1 ако низ листи треба да се сортира, 0 ако се не ради сортирање
+* _allow_duplicates_: 1 ако су дозвољене дупликат ставке, 0 ако се спречава поновно додавање исте ставке
+* _callback_cmp_: функција повратног позива која се користи за поређење две ставке (није обавезна), аргументи и повратна вредност су:
+** _void *data_: показивач
+** _struct t_arraylist *arraylist_: показивач на низ листи
+** _void *pointer1_: показивач на прву ставку
+** _void *pointer2_: показивач на другу ставку
+** повратна вредност:
+*** негативни број ако је прва ставка мања од друге ставке
+*** 0 ако су прва и друга ставка једнаке
+*** позитивни број ако је прва ставка већа од друге ставке
+* _callback_cmp_data_: показивач који се прослеђује функцији повратног позива када је позове програм WeeChat
+* _callback_free_: функција повратног позива која се користи да ослободи меморију коју заузима ставка (није обавезна), аргументи су:
+** _void *data_: показивач
+** _struct t_arraylist *arraylist_: показивач на низ листи
+** _void *pointer_: показивач на ставку
+* _callback_free_data_: показивач који се прослеђује функцији повратног позива када је позове програм WeeChat
+
+Повратна вредност:
+
+* показивач на нови низ листи
+
+C пример:
+
+[source, C]
+----
+int
+cmp_cb (void *data, struct t_arraylist *arraylist,
+ void *pointer1, void *pointer2)
+{
+ if (...)
+ return -1;
+ else if (...)
+ return 1;
+ else
+ return 0;
+}
+
+struct t_arraylist *list = weechat_arraylist_new (32, 1, 1,
+ &cmp_cb, NULL, NULL, NULL);
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== arraylist_size
+
+_WeeChat ≥ 1.8._
+
+Враћа величину низа листи (број ставки са показивачима).
+
+Прототип:
+
+[source, C]
+----
+int weechat_list_size (struct t_arraylist *arraylist);
+----
+
+Аргументи:
+
+* _arraylist_: показивач на низ листи
+
+Повратна вредност:
+
+* величина низа листи (број ставки), 0 у случају да је низ листи празан
+
+C пример:
+
+[source, C]
+----
+weechat_printf (NULL, "величина низа листи: %d", weechat_arraylist_size (arraylist));
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== arraylist_get
+
+_WeeChat ≥ 1.8._
+
+Враћа показивач на ставку на одређеној позицији.
+
+Прототип:
+
+[source, C]
+----
+void *weechat_arraylist_get (struct t_arraylist *arraylist, int index);
+----
+
+Аргументи:
+
+* _arraylist_: показивач на низ листи
+* _index_: индекс у листи (први показивач је 0)
+
+Повратна вредност:
+
+* пронађени показивач, NULL ако показивач није могао да се пронађе
+
+C пример:
+
+[source, C]
+----
+void *pointer = weechat_arraylist_get (arraylist, 0); /* прва ставка */
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== arraylist_search
+
+_WeeChat ≥ 1.8._
+
+Тражи ставку у низу листи.
+
+Прототип:
+
+[source, C]
+----
+void *weechat_arraylist_search (struct t_arraylist *arraylist, void *pointer,
+ int *index, int *index_insert);
+----
+
+Аргументи:
+
+* _arraylist_: показивач на низ листи
+* _pointer_: показивач на ставку која се тражи у низу листи
+* _index_: показивач на цео број који ће се поставити на пронађени индекс, или -1 ако се индекс не пронађе (није обавезно)
+* _index_insert_: показивач на цео број које ће се поставити на индекс који мора да се употреби за уметање елемента у низ листи (како би низ листи остао уређен) (није обавезно)
+
+Повратна вредност:
+
+* показивач на пронађену ставку, NULL у случају да се ставка не пронађе
+
+C пример:
+
+[source, C]
+----
+int index, index_insert;
+void *item = weechat_arraylist_search (arraylist, pointer, &index, &index_insert);
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== arraylist_insert
+
+_WeeChat ≥ 1.8._
+
+Умеће ставку у низ листи.
+
+Прототип:
+
+[source, C]
+----
+int weechat_arraylist_insert (struct t_arraylist *arraylist, int index, void *pointer);
+----
+
+Аргументи:
+
+* _arraylist_: показивач на низ листи
+* _index_: позиција ставке у низу листи или -1 ако треба да се дода на крај (овај аргумент се користи само у случају да низ листи није сортиран, игнорише се у случају када је низ листи сортиран)
+* _pointer_: показивач на ставку која треба да се уметне
+
+Повратна вредност:
+
+* индекс нове ставке (>= 0), -1 у случају грешке.
+
+C пример:
+
+[source, C]
+----
+int index = weechat_arraylist_insert (arraylist, -1, pointer); /* умеће на крај ако низ није сортиран */
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== arraylist_add
+
+_WeeChat ≥ 1.8._
+
+Додаје ставку у низ листи.
+
+Прототип:
+
+[source, C]
+----
+int weechat_arraylist_add (struct t_arraylist *arraylist, void *pointer);
+----
+
+Аргументи:
+
+* _arraylist_: показивач на низ листи
+* _pointer_: показивач на ставку која се додаје
+
+Повратна вредност:
+
+* индекс нове ставке (>= 0), -1 у случају грешке.
+
+C пример:
+
+[source, C]
+----
+int index = weechat_arraylist_add (arraylist, pointer);
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== arraylist_remove
+
+_WeeChat ≥ 1.8._
+
+Уклања ставку из низа листи.
+
+Прототип:
+
+[source, C]
+----
+int weechat_arraylist_remove (struct t_arraylist *arraylist, int index);
+----
+
+Аргументи:
+
+* _arraylist_: показивач на низ листи
+* _index_: индекс ставке која треба да се уклони
+
+Повратна вредност:
+
+* индекс уклоњене ставке, -1 у случају грешке.
+
+C пример:
+
+[source, C]
+----
+int index_removed = weechat_arraylist_remove (arraylist, index);
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== arraylist_clear
+
+_WeeChat ≥ 1.8._
+
+Уклања све ставке из низа листи.
+
+Прототип:
+
+[source, C]
+----
+int weechat_arraylist_clear (struct t_arraylist *arraylist);
+----
+
+Аргументи:
+
+* _arraylist_: показивач на низ листи
+
+Повратна вредност:
+
+* 1 ако је све OK, 0 у случају грешке
+
+C пример:
+
+[source, C]
+----
+if (weechat_arraylist_clear (arraylist))
+{
+ /* OK */
+}
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== arraylist_free
+
+_WeeChat ≥ 1.8._
+
+Ослобађа меморију коју заузима низ листи.
+
+Прототип:
+
+[source, C]
+----
+void weechat_arraylist_free (struct t_arraylist *arraylist);
+----
+
+Аргументи:
+
+* _arraylist_: показивач на низ листи
+
+C пример:
+
+[source, C]
+----
+weechat_arraylist_free (arraylist);
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+[[hashtables]]
+=== Хеш табеле
+
+Функције хеш табели.
+
+==== hashtable_new
+
+_WeeChat ≥ 0.3.3._
+
+Креира нову хеш табелу.
+
+Прототип:
+
+[source, C]
+----
+struct t_hashtable *weechat_hashtable_new (int size,
+ const char *type_keys,
+ const char *type_values,
+ unsigned long long (*callback_hash_key)(struct t_hashtable *hashtable,
+ const void *key),
+ int (*callback_keycmp)(struct t_hashtable *hashtable,
+ const void *key1,
+ const void *key2));
+----
+
+Аргументи:
+
+* _size_: величина интерног низа који чува хеш кључеве, већа вредност користи више меморије, али су перформансе боље (ово *није* ограничење броја ставки у хеш табели)
+* _type_keys_: тип кључева у хеш табели:
+** _WEECHAT_HASHTABLE_INTEGER_
+** _WEECHAT_HASHTABLE_STRING_
+** _WEECHAT_HASHTABLE_POINTER_
+** _WEECHAT_HASHTABLE_BUFFER_
+** _WEECHAT_HASHTABLE_TIME_
+* _type_values_: тип вредности у хеш табели:
+** _WEECHAT_HASHTABLE_INTEGER_
+** _WEECHAT_HASHTABLE_STRING_
+** _WEECHAT_HASHTABLE_POINTER_
+** _WEECHAT_HASHTABLE_BUFFER_
+** _WEECHAT_HASHTABLE_TIME_
+* _callback_hash_key_: функција повратног позива која се користи за „хеширање” кључа (кључ у облику целог броја), може да буде NULL ако тип кључа није „buffer” (користи се подразумевана хеш функција), аргументи и повратна вредност су:
+** _struct t_hashtable *hashtable_: показивач на хеш табелу
+** _const void *key_: кључ
+** return value: хеш кључа
+* _callback_keycmp_: функција повратног позива која се користи за поређење два кључа, може да буде NULL ако тип кључа није „buffer” (користи се подразумевана функција за поређење), аргументи и повратна вредност су:
+** _struct t_hashtable *hashtable_: показивач на хеш табелу
+** _const void *key1_: први кључ
+** _const void *key2_: други кључ
+** повратна вредност:
+*** негативни број ако је _key1_ мањи од _key2_
+*** 0 ако су _key1_ и _key2_ једнаки
+*** позитивни број ако је _key1_ већи од _key2_
+
+Повратна вредност:
+
+* показивач на нову хеш табелу, NULL у случају грешке
+
+C пример:
+
+[source, C]
+----
+struct t_hashtable *hashtable = weechat_hashtable_new (8,
+ WEECHAT_HASHTABLE_STRING,
+ WEECHAT_HASHTABLE_STRING,
+ NULL,
+ NULL);
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== hashtable_set_with_size
+
+_WeeChat ≥ 0.3.3, ажурирано у верзији 0.4.2._
+
+Додаје или ажурира ставку у хеш табели са величином за кључ и вредност.
+
+Прототип:
+
+[source, C]
+----
+struct t_hashtable_item *weechat_hashtable_set_with_size (struct t_hashtable *hashtable,
+ const void *key, int key_size,
+ const void *value, int value_size);
+----
+
+Аргументи:
+
+* _hashtable_: показивач на хеш табелу
+* _key_: показивач на кључ
+* _key_size_: величина кључа (у бајтовима), користи се само ако је тип кључева у хеш табели „buffer”
+* _value_: показивач на вредност
+* _value_size_: величина вредности (у бајтовима), користи се само ако је тип вредности у хеш табели „buffer”
+
+Повратна вредност:
+
+* показивач на креирану/ажурирану ставку, NULL у случају грешке
+
+C пример:
+
+[source, C]
+----
+weechat_hashtable_set_with_size (hashtable, "my_key", 0,
+ my_buffer, sizeof (my_buffer_struct));
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== hashtable_set
+
+_WeeChat ≥ 0.3.3, ажурирано у верзији 0.4.2._
+
+Додаје или ажурира ставку у хеш табели.
+
+Прототип:
+
+[source, C]
+----
+struct t_hashtable_item *weechat_hashtable_set (struct t_hashtable *hashtable,
+ const void *key, const void *value);
+----
+
+Аргументи:
+
+* _hashtable_: показивач на хеш табелу
+* _key_: показивач на кључ
+* _value_: показивач на вредност
+
+Повратна вредност:
+
+* показивач на креирану/ажурирану ставку, NULL у случају грешке
+
+C пример:
+
+[source, C]
+----
+weechat_hashtable_set (hashtable, "my_key", "my_value");
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== hashtable_get
+
+_WeeChat ≥ 0.3.3._
+
+Враћа вредност придружену кључу у хеш табели.
+
+Прототип:
+
+[source, C]
+----
+void *weechat_hashtable_get (struct t_hashtable *hashtable, void *key);
+----
+
+Аргументи:
+
+* _hashtable_: показивач на хеш табелу
+* _key_: показивач на кључ
+
+Повратна вредност:
+
+* вредност за кључ, NULL ако кључ не може да се пронађе
+
+C пример:
+
+[source, C]
+----
+void *value = weechat_hashtable_get (hashtable, "my_key");
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== hashtable_has_key
+
+_WeeChat ≥ 0.3.4._
+
+Проверава да ли се кључ налази у хеш табели.
+
+Прототип:
+
+[source, C]
+----
+int weechat_hashtable_has_key (struct t_hashtable *hashtable, void *key);
+----
+
+Аргументи:
+
+* _hashtable_: показивач на хеш табелу
+* _key_: показивач на кључ
+
+Повратна вредност:
+
+* 1 ако се кључ налази у хеш табели, 0 ако се кључ не налази у хеш табели
+
+C пример:
+
+[source, C]
+----
+if (weechat_hashtable_has_key (hashtable, "my_key"))
+{
+ /* кључ се налази у хеш табели */
+ /* ... */
+}
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== hashtable_map
+
+_WeeChat ≥ 0.3.3._
+
+Позива функцију над свим ставкама хеш табеле.
+
+Прототип:
+
+[source, C]
+----
+void weechat_hashtable_map (struct t_hashtable *hashtable,
+ void (*callback_map)(void *data,
+ struct t_hashtable *hashtable,
+ const void *key,
+ const void *value),
+ void *callback_map_data);
+----
+
+Аргументи:
+
+* _hashtable_: показивач на хеш табелу
+* _callback_map_: функција која се позива за сваку ставку у хеш табели
+* _callback_map_data_: показивач који се прослеђује функцији повратног позива мапирања када се позове
+
+C пример:
+
+[source, C]
+----
+void
+map_cb (void *data, struct t_hashtable *hashtable,
+ const void *key, const void *value)
+{
+ /* приказује кључ и вредност (овде су оба стрингови) */
+ weechat_printf (NULL, "кључ: '%s', вредност: '%s'",
+ (const char *)key,
+ (const char *)value);
+}
+/* ... */
+weechat_hashtable_map (hashtable, &map_cb, NULL);
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== hashtable_map_string
+
+_WeeChat ≥ 0.3.7._
+
+Позива функцију над свим ставкама хеш табеле и шаље јој кључеве и вредности као стрингове.
+
+Прототип:
+
+[source, C]
+----
+void weechat_hashtable_map_string (struct t_hashtable *hashtable,
+ void (*callback_map)(void *data,
+ struct t_hashtable *hashtable,
+ const char *key,
+ const char *value),
+ void *callback_map_data);
+----
+
+Аргументи:
+
+* _hashtable_: показивач на хеш табелу
+* _callback_map_: функција која се позива за сваку ставку у хеш табели
+* _callback_map_data_: показивач који се прослеђује функцији повратног позива мапирања када се позове
+
+[NOTE]
+Стрингови _key_ и _value_ који се шаљу функцији повратног позива су привремени стрингови, они се бришу након позива функције повратног позива.
+
+C пример:
+
+[source, C]
+----
+void
+map_cb (void *data, struct t_hashtable *hashtable,
+ const char *key, const char *value)
+{
+ /* приказ кључа и вредности */
+ weechat_printf (NULL, "кључ: '%s', вредност: '%s'",
+ key, value);
+}
+/* ... */
+weechat_hashtable_map_string (hashtable, &map_cb, NULL);
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== hashtable_dup
+
+_WeeChat ≥ 1.0._
+
+Прави дупликат хеш табеле.
+
+Прототип:
+
+[source, C]
+----
+struct t_hashtable *weechat_hashtable_dup (struct t_hashtable *hashtable);
+----
+
+Аргументи:
+
+* _hashtable_: показивач на хеш табелу
+
+Повратна вредност:
+
+* дулпирана хеш табела
+
+C пример:
+
+[source, C]
+----
+struct t_hashtable *new_hashtable = weechat_hashtable_dup (hashtable);
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== hashtable_get_integer
+
+_WeeChat ≥ 0.3.3._
+
+Враћа целобројну вредност особине хеш табеле.
+
+Прототип:
+
+[source, C]
+----
+int weechat_hashtable_get_integer (struct t_hashtable *hashtable,
+ void *property);
+----
+
+Аргументи:
+
+* _hashtable_: показивач на хеш табелу
+* _property_: име особине:
+** _size_: величина интерног низа „htable” у хеш табели
+** _items_count_: број ставки у хеш табели
+
+Повратна вредност:
+
+* целобројна вредност особине
+
+C пример:
+
+[source, C]
+----
+int items_count = weechat_hashtable_get_integer (hashtable, "items_count");
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== hashtable_get_string
+
+_WeeChat ≥ 0.3.4._
+
+Враћа стринг вредност особине хеш табеле.
+
+Прототип:
+
+[source, C]
+----
+const char *weechat_hashtable_get_string (struct t_hashtable *hashtable,
+ const char *property);
+----
+
+Аргументи:
+
+* _hashtable_: показивач на хеш табелу
+* _property_: име особине:
+** _type_keys_: тип кључева:
+*** _integer_: цео број
+*** _string_: стринг
+*** _pointer_: показивач
+*** _buffer_: бафер
+*** _time_: време
+** _type_values_: тип вредности:
+*** _integer_: цео број
+*** _string_: стринг
+*** _pointer_: показивач
+*** _buffer_: бафер
+*** _time_: време
+** _keys_: стринг са листом кључева (у формату: „кључ1,кључ2,кључ3”)
+** _keys_sorted_: стринг са листом сортираних кључева (у формату: „кључ1,кључ2,кључ3”)
+** _values_: стринг са листом вредности
+** _keys_values_: стринг са листом кључева и вредности (у формату: „кључ1:вредност1,кључ2:вредност2,кључ3:вредност3”)
+** _keys_values_sorted_: стринг са листом кључева и вредности (сортиран по кључевима) (у формату: „кључ1:вредност1,кључ2:вредност2,кључ3:вредност3”)
+
+Повратна вредност:
+
+* стринг вредност особине
+
+C примери:
+
+[source, C]
+----
+weechat_printf (NULL, "keys are type: %s",
+ weechat_hashtable_get_string (hashtable, "type_keys"));
+weechat_printf (NULL, "list of keys: %s",
+ weechat_hashtable_get_string (hashtable, "keys"));
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== hashtable_set_pointer
+
+_WeeChat ≥ 0.3.4._
+
+Поставља вредност показивача на особину хеш табеле.
+
+Прототип:
+
+[source, C]
+----
+void weechat_hashtable_set_pointer (struct t_hashtable *hashtable,
+ const char *property, void *pointer);
+----
+
+Аргументи:
+
+* _hashtable_: показивач на хеш табелу
+* _property_: име особине:
+** _callback_free_key_: поставља функцију повратног позива која се користи за ослобађање меморије коју заузимају кључеви у хеш табели _(WeeChat ≥ 0.4.2)_
+** _callback_free_value_: поставља функцију повратног позива која се користи за ослобађање меморије коју користе вредности у хеш табели
+* _pointer_: нова вредност показивача за особину
+
+C пример:
+
+[source, C]
+----
+void
+my_free_value_cb (struct t_hashtable *hashtable, const void *key, void *value)
+{
+ /* ... */
+}
+
+void
+my_free_key_cb (struct t_hashtable *hashtable, void *key)
+{
+ /* ... */
+}
+
+weechat_hashtable_set_pointer (hashtable, "callback_free_value", &my_free_value_cb);
+weechat_hashtable_set_pointer (hashtable, "callback_free_key", &my_free_key_cb);
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== hashtable_add_to_infolist
+
+_WeeChat ≥ 0.3.3._
+
+Додаје ставе хеш табеле у ставку инфо листе.
+
+Прототип:
+
+[source, C]
+----
+int weechat_hashtable_add_to_infolist (struct t_hashtable *hashtable,
+ struct t_infolist_item *infolist_item,
+ const char *prefix);
+----
+
+Аргументи:
+
+* _hashtable_: показивач на хеш табелу
+* _infolist_item_: показивач на ставку инфо листе
+* _prefix_: стринг који се користи као префикс за имена у инфо листи
+
+Повратна вредност:
+
+* 1 ако је све OK, 0 у случају грешке
+
+C пример:
+
+[source, C]
+----
+weechat_hashtable_add_to_infolist (hashtable, infolist_item, "testhash");
+
+/* ако хеш табела садржи:
+ "кључ1" => "вредност 1"
+ "кључ2" => "вредност 2"
+ онда ће се у ставку инфо листе додати следеће променљиве:
+ "testhash_name_00000" = "кључ1"
+ "testhash_value_00000" = "вредност 1"
+ "testhash_name_00001" = "кључ2"
+ "testhash_value_00001" = "вредност 2"
+*/
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== hashtable_add_from_infolist
+
+_WeeChat ≥ 2.2._
+
+Додаје ставке инфо листе у хеш табелу.
+
+Прототип:
+
+[source, C]
+----
+int weechat_hashtable_add_from_infolist (struct t_hashtable *hashtable,
+ struct t_infolist *infolist,
+ const char *prefix);
+----
+
+Аргументи:
+
+* _hashtable_: показивач на хеш табелу
+* _infolist_: показивач на инфо листу
+* _prefix_: стринг који се користи као префикс за имена у инфо листи
+
+Повратна вредност:
+
+* 1 ако је све OK, 0 у случају грешке
+
+C пример:
+
+[source, C]
+----
+weechat_hashtable_add_from_infolist (hashtable, infolist, "testhash");
+
+/* ако инфо листа садржи:
+ "testhash_name_00000" = "кључ1"
+ "testhash_value_00000" = "вредност 1"
+ "testhash_name_00001" = "кључ2"
+ "testhash_value_00001" = "вредност 2"
+ онда ће се у хеш табелу додати следеће променљиве:
+ "кључ1" => "вредност 1"
+ "кључ2" => "вредност 2"
+*/
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== hashtable_remove
+
+_WeeChat ≥ 0.3.3._
+
+Уклања ставку из хеш табеле.
+
+Прототип:
+
+[source, C]
+----
+void weechat_hashtable_remove (struct t_hashtable *hashtable, const void *key);
+----
+
+Аргументи:
+
+* _hashtable_: показивач на хеш табелу
+* _key_: показивач на кључ
+
+C пример:
+
+[source, C]
+----
+weechat_hashtable_remove (hashtable, "my_key");
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== hashtable_remove_all
+
+_WeeChat ≥ 0.3.3._
+
+Уклања све ставке из хеш табеле.
+
+Прототип:
+
+[source, C]
+----
+void weechat_hashtable_remove_all (struct t_hashtable *hashtable);
+----
+
+Аргументи:
+
+* _hashtable_: показивач на хеш табелу
+
+C пример:
+
+[source, C]
+----
+weechat_hashtable_remove_all (hashtable);
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== hashtable_free
+
+_WeeChat ≥ 0.3.3._
+
+Ослобађа меморију коју заузима хеш табела.
+
+Прототип:
+
+[source, C]
+----
+void weechat_hashtable_free (struct t_hashtable *hashtable);
+----
+
+Аргументи:
+
+* _hashtable_: показивач на хеш табелу
+
+C пример:
+
+[source, C]
+----
+weechat_hashtable_free (hashtable);
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+[[configuration_files]]
+=== Конфигурациони фајлови
+
+Функције за конфигурационе фајлове.
+
+==== config_new
+
+_Ажурирано у верзији 1.5._
+
+Креира нови конфигурациони фајл.
+
+Прототип:
+
+[source, C]
+----
+struct t_config_file *weechat_config_new (const char *name,
+ int (*callback_reload)(const void *pointer,
+ void *data,
+ struct t_config_file *config_file),
+ const void *callback_reload_pointer,
+ void *callback_reload_data);
+----
+
+Аргументи:
+
+* _name_: име конфигурационог фајла (без путање или екстензије)
+* _callback_reload_: функција која се позива када се командом `/reload` поново учита конфигурациони фајл (није обавезна, може да буде NULL, погледајте испод), аргументи и повратна вредност су:
+** _const void *pointer_: показивач
+** _void *data_: показивач
+** _struct t_config_file *config_file_: показивач на конфигурациони фајл
+** повратна вредност:
+*** _WEECHAT_CONFIG_READ_OK_
+*** _WEECHAT_CONFIG_READ_MEMORY_ERROR_
+*** _WEECHAT_CONFIG_READ_FILE_NOT_FOUND_
+* _callback_reload_pointer_: показивач који се прослеђује функцији повратног позива када је позове програм WeeChat
+* _callback_reload_data_: показивач који се прослеђује функцији повратног позива када је позове програм WeeChat; ако није NULL, онда је алоциран са malloc (или неком сличном функцијом) и аутоматски се ослобађа када се ослободи конфигурациони фајл
+
+Функција повратног позива код поновног учитавања:
+
+* Функција повратног позива сме само да позове функцију <<_config_reload,config_reload>>, не сме да уклања конфигурациони фајл.
+* Функција повратног позива је потребна само ако треба да се обаве неке ствари пре и/или након позива функције <<_config_reload,config_reload>>. + Ако се не наведе функција повратног позива, програм WeeChat ће позвати своју интерну функцију за поновно учитавање, тако да ће се конфигурациони фајл поново учитати у свим случајевима.
+
+Повратна вредност:
+
+* показивач на нови конфигурациони фајл, NULL у случају грешке
+
+[NOTE]
+Ова функција НЕ креира фајл на диску. Фајл ће се креирати позивом функције <<_config_write,config_write>>. Ово функцију би требало да позовете само након додавања неких одељака (са <<_config_new_section,config_new_section>>) и опција (са <<_config_new_option,config_new_option>>).
+
+C пример:
+
+[source, C]
+----
+int
+my_config_reload_cb (const void *pointer, void *data,
+ struct t_config_file *config_file)
+{
+ /* ... */
+
+ return WEECHAT_RC_OK;
+}
+
+struct t_config_file *config_file = weechat_config_new ("test",
+ &my_config_reload_cb,
+ NULL, NULL);
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def config_new(name: str, callback_reload: str, callback_reload_data: str) -> str: ...
+
+# пример
+def my_config_reload_cb(data, config_file):
+ # ...
+ return weechat.WEECHAT_RC_OK
+
+config_file = weechat.config_new("test", "my_config_reload_cb", "")
+----
+
+==== config_new_section
+
+_Ажурирано у верзији 1.5._
+
+Креира нови одељак у конфигурационом фајлу.
+
+Прототип:
+
+[source, C]
+----
+struct t_config_section *weechat_config_new_section (
+ struct t_config_file *config_file,
+ const char *name,
+ int user_can_add_options,
+ int user_can_delete_options,
+ int (*callback_read)(const void *pointer,
+ void *data,
+ struct t_config_file *config_file,
+ struct t_config_section *section,
+ const char *option_name,
+ const char *value),
+ const void *callback_read_pointer,
+ void *callback_read_data,
+ int (*callback_write)(const void *pointer,
+ void *data,
+ struct t_config_file *config_file,
+ const char *section_name),
+ const void *callback_write_pointer,
+ void *callback_write_data,
+ int (*callback_write_default)(const void *pointer,
+ void *data,
+ struct t_config_file *config_file,
+ const char *section_name),
+ const void *callback_write_default_pointer,
+ void *callback_write_default_data,
+ int (*callback_create_option)(const void *pointer,
+ void *data,
+ struct t_config_file *config_file,
+ struct t_config_section *section,
+ const char *option_name,
+ const char *value),
+ const void *callback_create_option_pointer,
+ void *callback_create_option_data,
+ int (*callback_delete_option)(const void *pointer,
+ void *data,
+ struct t_config_file *config_file,
+ struct t_config_section *section,
+ struct t_config_option *option),
+ const void *callback_delete_option_pointer,
+ void *callback_delete_option_data);
+----
+
+Аргументи:
+
+* _config_file_: показивач на конфигурациони фајл
+* _name_: име одељка
+* _user_can_add_options_: 1 ако корисник у одељку може да креира нове опције, или 0 ако је то забрањено
+* _user_can_delete_options_: 1 ако корисник може да брише опције у одељку, или 0 ако је то забрањено
+* _callback_read_: функција која се позива када се опција у одељку прочита са диска (у већини случајева би требало да буде NULL, осим ако опције у одељку захтевају прилагођену функцију), аргументи и повратна вредност су:
+** _const void *pointer_: показивач
+** _void *data_: показивач
+** _struct t_config_file *config_file_: показивач на конфигурациони фајл
+** _struct t_config_section *section_: показивач на одељак
+** _const char *option_name_: име опције
+** _const char *value_: вредност
+** повратна вредност:
+*** _WEECHAT_CONFIG_READ_OK_
+*** _WEECHAT_CONFIG_READ_MEMORY_ERROR_
+*** _WEECHAT_CONFIG_READ_FILE_NOT_FOUND_
+* _callback_read_pointer_: показивач који се прослеђује функцији повратног позива када је позове програм WeeChat
+* _callback_read_data_: показивач који се прослеђује функцији повратног позива када је позове програм WeeChat; ако није NULL, алоцирала га је malloc (или нека слична функција) и аутоматски се ослобађа када се ослободи одељак
+* _callback_write_: функција која се позива када се одељак уписује у фајл (у већини случајева би требало да буде NULL, осим ако је потребно да се одељак упише прилагођеном функцијом), аргументи и повратна вредност су:
+** _const void *pointer_: показивач
+** _void *data_: показивач
+** _struct t_config_file *config_file_: показивач на конфигурациони фајл
+** _struct t_config_section *section_: показивач на одељак
+** _const char *section_name_: име одељка
+** повратна вредност:
+*** _WEECHAT_CONFIG_WRITE_OK_
+*** _WEECHAT_CONFIG_WRITE_ERROR_
+*** _WEECHAT_CONFIG_WRITE_MEMORY_ERROR_
+* _callback_write_pointer_: показивач који се прослеђује функцији повратног позива када је позове програм WeeChat
+* _callback_write_data_: показивач који се прослеђује функцији повратног позива када је позове програм WeeChat; ако није NULL, алоцирала га је malloc (или нека слична функција) и аутоматски се ослобађа када се ослободи одељак
+* _callback_write_default_: функција која се позива када у фајл мора да се упишу подразумеване опције за одељак, аргументи и повратна вредност су:
+** _const void *pointer_: показивач
+** _void *data_: показивач
+** _struct t_config_file *config_file_: показивач на конфигурациони фајл
+** _const char *section_name_: име одељка
+** повратна вредност:
+*** _WEECHAT_CONFIG_WRITE_OK_
+*** _WEECHAT_CONFIG_WRITE_ERROR_
+*** _WEECHAT_CONFIG_WRITE_MEMORY_ERROR_
+* _callback_write_default_pointer_: показивач који се прослеђује функцији повратног позива када је позове програм WeeChat
+* _callback_write_default_data_: показивач који се прослеђује функцији повратног позива када је позове програм WeeChat; ако није NULL, алоцирала га је malloc (или нека слична функција) и аутоматски се ослобађа када се одељак ослободи
+* _callback_create_option_: функција која се позива када се у одељку креира нова опција (NULL ако одељак не дозвољава креирање нових опција), аргументи и повратна вредност су:
+** _const void *pointer_: показивач
+** _void *data_: показивач
+** _struct t_config_file *config_file_: показивач на конфигурациони фајл
+** _struct t_config_section *section_: показивач на одељак
+** _const char *option_name_: име опције
+** _const char *value_: вредност
+** повратна вредност:
+*** _WEECHAT_CONFIG_OPTION_SET_OK_CHANGED_
+*** _WEECHAT_CONFIG_OPTION_SET_OK_SAME_VALUE_
+*** _WEECHAT_CONFIG_OPTION_SET_ERROR_
+*** _WEECHAT_CONFIG_OPTION_SET_OPTION_NOT_FOUND_
+* _callback_create_option_pointer_: показивач који се прослеђује функцији повратног позива када је позове програм WeeChat
+* _callback_create_option_data_: показивач који се прослеђује функцији повратног позива када је позове програм WeeChat; ако није NULL, алоцирала га је malloc (или нека слична функција) и аутоматски се ослобађа када се ослободи одељак
+* _callback_delete_option_: функција која се позива када се у одељку обрише опција (NULL ако одељак не дозвољава брисање опција), аргументи и повратна вредност су:
+** _const void *pointer_: показивач
+** _void *data_: показивач
+** _struct t_config_file *config_file_: показивач на конфигурациони фајл
+** _struct t_config_section *section_: показивач на одељак
+** _struct t_config_option *option_: показивач на опцију
+** повратна вредност:
+*** _WEECHAT_CONFIG_OPTION_UNSET_OK_NO_RESET_
+*** _WEECHAT_CONFIG_OPTION_UNSET_OK_RESET_
+*** _WEECHAT_CONFIG_OPTION_UNSET_OK_REMOVED_
+*** _WEECHAT_CONFIG_OPTION_UNSET_ERROR_
+* _callback_delete_option_pointer_: показивач који се прослеђује функцији повратног позива када је позове програм WeeChat
+* _callback_delete_option_data_: показивач који се прослеђује функцији повратног позива када је позове програм WeeChat; ако није NULL, алоцирала га је malloc (или слична функција) и аутоматски се ослобађа када се ослободи одељак
+
+Повратна вредност:
+
+* показивач на нови одељак у конфигурационом фајлу, NULL у случају грешке
+
+C пример:
+
+[source, C]
+----
+int
+my_section_read_cb (const void *pointer, void *data,
+ struct t_config_file *config_file,
+ struct t_config_section *section,
+ const char *option_name,
+ const char *value)
+{
+ /* ... */
+
+ return WEECHAT_CONFIG_READ_OK;
+ /* return WEECHAT_CONFIG_READ_MEMORY_ERROR; */
+ /* return WEECHAT_CONFIG_READ_FILE_NOT_FOUND; */
+}
+
+int
+my_section_write_cb (const void *pointer, void *data,
+ struct t_config_file *config_file,
+ const char *section_name)
+{
+ /* ... */
+
+ return WEECHAT_CONFIG_WRITE_OK;
+ /* return WEECHAT_CONFIG_WRITE_ERROR; */
+ /* return WEECHAT_CONFIG_WRITE_MEMORY_ERROR; */
+}
+
+int
+my_section_write_default_cb (const void *pointer, void *data,
+ struct t_config_file *config_file,
+ const char *section_name)
+{
+ /* ... */
+
+ return WEECHAT_CONFIG_WRITE_OK;
+ /* return WEECHAT_CONFIG_WRITE_ERROR; */
+ /* return WEECHAT_CONFIG_WRITE_MEMORY_ERROR; */
+}
+
+int
+my_section_create_option_cb (const void *pointer, void *data,
+ struct t_config_file *config_file,
+ struct t_config_section *section,
+ const char *option_name,
+ const char *value)
+{
+ /* ... */
+
+ return WEECHAT_CONFIG_OPTION_SET_OK_CHANGED;
+ /* return WEECHAT_CONFIG_OPTION_SET_OK_SAME_VALUE; */
+ /* return WEECHAT_CONFIG_OPTION_SET_ERROR; */
+ /* return WEECHAT_CONFIG_OPTION_SET_OPTION_NOT_FOUND; */
+}
+
+int
+my_section_delete_option_cb (const void *pointer, void *data,
+ struct t_config_file *config_file,
+ struct t_config_section *section,
+ struct t_config_option *option)
+{
+ /* ... */
+
+ return WEECHAT_CONFIG_OPTION_UNSET_OK_REMOVED;
+ /* return WEECHAT_CONFIG_OPTION_UNSET_OK_NO_RESET; */
+ /* return WEECHAT_CONFIG_OPTION_UNSET_OK_RESET; */
+ /* return WEECHAT_CONFIG_OPTION_UNSET_ERROR; */
+}
+
+/* стандардни одељак, корисник не може да додаје/брише опције */
+struct t_config_section *new_section1 =
+ weechat_config_new_section (config_file, "section1", 0, 0,
+ NULL, NULL, NULL,
+ NULL, NULL, NULL,
+ NULL, NULL, NULL,
+ NULL, NULL, NULL,
+ NULL, NULL, NULL);
+
+/* специјални одељак, корисник може да додаје/брише опције и за упис/читање
+ опција је потребна функција повратног позива */
+struct t_config_section *new_section2 =
+ weechat_config_new_section (config_file, "section2", 1, 1,
+ &my_section_read_cb, NULL, NULL,
+ &my_section_write_cb, NULL, NULL,
+ &my_section_write_default_cb, NULL, NULL,
+ &my_section_create_option_cb, NULL, NULL,
+ &my_section_delete_option_cb, NULL, NULL);
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def config_new_section(config_file: str, name: str,
+ user_can_add_options: int, user_can_delete_options: int,
+ callback_read: str, callback_read_data: str,
+ callback_write: str, callback_write_data: str,
+ callback_create_option: str, callback_create_option_data: str,
+ callback_delete_option: str, callback_delete_option_data: str) -> str: ...
+
+# пример
+def my_section_read_cb(data, config_file, section, option_name, value):
+ # ...
+ return weechat.WEECHAT_CONFIG_OPTION_SET_OK_CHANGED
+ # return weechat.WEECHAT_CONFIG_OPTION_SET_OK_SAME_VALUE
+ # return weechat.WEECHAT_CONFIG_OPTION_SET_OPTION_NOT_FOUND
+ # return weechat.WEECHAT_CONFIG_OPTION_SET_ERROR
+
+def my_section_write_cb(data, config_file, section_name):
+ # ...
+ return weechat.WEECHAT_CONFIG_WRITE_OK
+
+def my_section_write_default_cb(data, config_file, section_name):
+ # ...
+ return weechat.WEECHAT_CONFIG_WRITE_OK
+
+def my_section_create_option_cb(data, config_file, section, option_name, value):
+ # ...
+ return weechat.WEECHAT_CONFIG_OPTION_SET_OK_SAME_VALUE
+
+def my_section_delete_option_cb(data, config_file, section, option):
+ # ...
+ return weechat.WEECHAT_CONFIG_OPTION_UNSET_OK_REMOVED
+
+section = weechat.config_new_section(config_file, "section1", 1, 1,
+ "my_section_read_cb", "",
+ "my_section_write_cb", "",
+ "my_section_write_default_cb", "",
+ "my_section_create_option_cb", "",
+ "my_section_delete_option_cb", "")
+----
+
+==== config_search_section
+
+Тражи одељак у конфигурационом фајлу.
+
+Прототип:
+
+[source, C]
+----
+struct t_config_section *weechat_config_search_section (
+ struct t_config_file *config_file,
+ const char *section_name);
+----
+
+Аргументи:
+
+* _config_file_: показивач на конфигурациони фајл
+* _section_name_: име одељка који се тражи
+
+Повратна вредност:
+
+* показивач на пронађени одељак, NULL у случају да се одељак не пронађе
+
+C пример:
+
+[source, C]
+----
+struct t_config_section *section = weechat_config_search_section (config_file,
+ "section");
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def config_search_section(config_file: str, section_name: str) -> str: ...
+
+# пример
+section = weechat.config_search_section(config_file, "section")
+----
+
+==== config_new_option
+
+_Ажурирано у верзији 1.5._
+
+Креира нову опцију у одељку конфигурационог фајла.
+
+Прототип:
+
+[source, C]
+----
+struct t_config_option *weechat_config_new_option (
+ struct t_config_file *config_file,
+ struct t_config_section *section,
+ const char *name,
+ const char *type,
+ const char *description,
+ const char *string_values,
+ int min,
+ int max,
+ const char *default_value,
+ const char *value,
+ int null_value_allowed,
+ int (*callback_check_value)(const void *pointer,
+ void *data,
+ struct t_config_option *option,
+ const char *value),
+ const void *callback_check_value_pointer,
+ void *callback_check_value_data,
+ void (*callback_change)(const void *pointer,
+ void *data,
+ struct t_config_option *option),
+ const void *callback_change_pointer,
+ void *callback_change_data,
+ void (*callback_delete)(const void *pointer,
+ void *data,
+ struct t_config_option *option),
+ const void *callback_delete_pointer,
+ void *callback_delete_data);
+----
+
+Аргументи:
+
+* _config_file_: показивач на конфигурациони фајл
+* _section_: показивач на одељак
+* _name_: име опције; у програм у WeeChat верзије ≥ 1.4, име може да укључи и име родитељске опције (у случају да је ова опција „null”, вредност родитељске опције ће се приказати у излазу команде `/set`), тада је синтакса: „име << фајл.одељак.опција”
+* _type_: тип опције:
+** _boolean_: логичка вредност (on/off)
+** _integer_: целобројна вредност (са стринговима за вредности који нису обавезни)
+** _string_: стринг вредност
+** _color_: боја
+* _description_: опис опције
+* _string_values_: вредности као стринг (раздвојене са `+|+`), користе се за _integer_ тип (није обавезно)
+* _min_: минимална вредност (за _integer_ тип)
+* _max_: максимална вредност (за _integer_ тип)
+* _default_value_: подразумевана вредност опције (користи се када се опција ресетује)
+* _value_: вредност за опцију
+* _null_value_allowed_: 1 ако се за опцију дозвољава _null_ (недефинисана вредност), у супротном 0
+* _callback_check_value_: функција која се позива за проверу нове вредности опције (није обавезна), аргументи и повратна вредност су:
+** _const void *pointer_: показивач
+** _void *data_: показивач
+** _struct t_config_option *option_: показивач на опцију
+** _const char *value_: нова вредност опције
+** повратна вредност:
+*** 1 ако је вредност ОК
+*** 0 ако је вредност неважећа
+* _callback_check_value_pointer_: показивач који се прослеђује check_value функцији повратног позива када је позове програм WeeChat
+* _callback_check_value_data_: показивач који се прослеђује функцији повратног позива када је позове програм WeeChat; ако није NULL, алоцирала га је malloc (или нека слична функција) и аутоматски се ослобађа када се ослободи опција
+* _callback_change_: функција која се позива када се промени вредност опције (није обавезна), аргументи су:
+** _const void *pointer_: показивач
+** _void *data_: показивач
+** _struct t_config_option *option_: показивач на опцију
+* _callback_change_pointer_: показивач који се прослеђује change функцији повратног позива када је позове програм WeeChat
+* _callback_change_data_: показивач који се прослеђује функцији повратног позива када је позове програм WeeChat; ако није NULL, алоцирала га је malloc (или нека слична функција) и аутоматски се ослобађа када се ослободи опција
+* _callback_delete_: функција која се позива када се опција брише (није обавезна), аргументи су:
+** _const void *pointer_: показивач
+** _void *data_: показивач
+** _struct t_config_option *option_: показивач на опцију
+* _callback_delete_pointer_: показивач који се прослеђује delete функцији повратног позива када је позове програм WeeChat
+* _callback_delete_data_: показивач који се прослеђује функцији повратног позива када је позове програм WeeChat; ако није NULL, алоцирала га је malloc (или слична функција) и аутоматски се ослобађа када се ослободи опција
+
+Повратна вредност:
+
+* показивач на нову опцију у одељку, NULL у случају грешке
+
+C пример:
+
+[source, C]
+----
+/* логичка */
+struct t_config_option *option1 =
+ weechat_config_new_option (config_file, section, "option1", "boolean",
+ "My option, type boolean",
+ NULL,
+ 0, 0,
+ "on",
+ "on",
+ 0,
+ NULL, NULL, NULL,
+ NULL, NULL, NULL,
+ NULL, NULL, NULL);
+
+/* целобројна */
+struct t_config_option *option2 =
+ weechat_config_new_option (config_file, section, "option2", "integer",
+ "My option, type integer",
+ NULL,
+ 0, 100,
+ "15",
+ "15",
+ 0,
+ NULL, NULL, NULL,
+ NULL, NULL, NULL,
+ NULL, NULL, NULL);
+
+/* целобројна (са стринг вредностима) */
+struct t_config_option *option3 =
+ weechat_config_new_option (config_file, section, "option3", "integer",
+ "My option, type integer (with string values)",
+ "top|bottom|left|right",
+ 0, 0,
+ "bottom",
+ "bottom",
+ 0,
+ NULL, NULL, NULL,
+ NULL, NULL, NULL,
+ NULL, NULL, NULL);
+
+/* стринг */
+struct t_config_option *option4 =
+ weechat_config_new_option (config_file, section, "option4", "string",
+ "My option, type string",
+ NULL,
+ 0, 0,
+ "test",
+ "test",
+ 1,
+ NULL, NULL, NULL,
+ NULL, NULL, NULL,
+ NULL, NULL, NULL);
+
+/* боја */
+struct t_config_option *option5 =
+ weechat_config_new_option (config_file, section, "option5", "color",
+ "My option, type color",
+ NULL,
+ 0, 0,
+ "lightblue",
+ "lightblue",
+ 0,
+ NULL, NULL, NULL,
+ NULL, NULL, NULL,
+ NULL, NULL, NULL);
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def config_new_option(config_file: str, section: str, name: str, type: str, description: str,
+ string_values: str, min: int, max: int,
+ default_value: str, value: str, null_value_allowed: int,
+ callback_check_value: str, callback_check_value_data: str,
+ callback_change: str, callback_change_data: str,
+ callback_delete: str, callback_delete_data: str) -> str: ...
+
+# пример
+def option4_check_value_cb(data, option, value):
+ # ...
+ return 1
+ # return 0
+
+def option4_change_cb(data, option):
+ # ...
+
+def option4_delete_cb(data, option):
+ # ...
+
+option1 = weechat.config_new_option(config_file, section, "option1", "boolean",
+ "My option, type boolean",
+ "", 0, 0, "on", "on", 0,
+ "", "",
+ "", "",
+ "", "")
+
+option2 = weechat.config_new_option(config_file, section, "option2", "integer",
+ "My option, type integer",
+ "", 0, 100, "15", "15", 0,
+ "", "",
+ "", "",
+ "", "")
+
+option3 = weechat.config_new_option(config_file, section, "option3", "integer",
+ "My option, type integer (with string values)",
+ "top|bottom|left|right",
+ 0, 0, "bottom", "bottom", 0,
+ "", "",
+ "", "",
+ "", "")
+
+option4 = weechat.config_new_option(config_file, section, "option4", "string",
+ "My option, type string",
+ "", 0, 0, "test", "test", 1,
+ "option4_check_value_cb", "",
+ "option4_change_cb", "",
+ "option4_delete_cb", "")
+
+option5 = weechat.config_new_option(config_file, section, "option5", "color",
+ "My option, type color",
+ "", 0, 0, "lightblue", "lightblue", 0,
+ "", "",
+ "", "",
+ "", "")
+----
+
+[NOTE]
+У језику Ruby, 3 функције повратног позива + подаци (6 стрингова) морају да се наведу у низу од 6 стрингова (услед Ruby ограничења од 15 аргумената по функцији), за више информација, погледајте link:++weechat_scripting.sr.html#_ruby++[WeeChat водич за скриптовање] _(исправљено у верзији 0.4.1)_.
+
+==== config_search_option
+
+Тражи опцију у одељку конфигурационог фајла.
+
+Прототип:
+
+[source, C]
+----
+struct t_config_option *weechat_config_search_option (
+ struct t_config_file *config_file,
+ struct t_config_section *section,
+ const char *option_name);
+----
+
+Аргументи:
+
+* _config_file_: показивач на конфигурациони фајл
+* _section_: показивач на одељак
+* _name_: име опције која се тражи
+
+Повратна вредност:
+
+* показивач на нађену опцију, NULL у случају да се опција не нађе
+
+C пример:
+
+[source, C]
+----
+struct t_config_option *option =
+ weechat_config_search_option (config_file, section, "option");
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def config_search_option(config_file: str, section: str, option_name: str) -> str: ...
+
+# пример
+option = weechat.config_search_option(config_file, section, "option")
+----
+
+==== config_search_section_option
+
+Тражи одељак и опцију у конфигурационом фајлу или одељку.
+
+Прототип:
+
+[source, C]
+----
+void weechat_config_search_section_option (struct t_config_file *config_file,
+ struct t_config_section *section,
+ const char *option_name,
+ struct t_config_section **section_found,
+ struct t_config_option **option_found);
+----
+
+Аргументи:
+
+* _config_file_: показивач на конфигурациони фајл
+* _section_: показивач на одељак
+* _option_name_: име опције
+* _section_found_: показивач на показивач одељка, ако се пронађе, поставиће се на одељак опције
+* _option_found_: показивач на показивач опције, ако се пронађе, поставићесе на показивач опције
+
+C пример:
+
+[source, C]
+----
+struct t_config_section *ptr_section;
+struct t_config_option *ptr_option;
+
+weechat_config_search_section_option(config_file,
+ section,
+ "option",
+ &ptr_section,
+ &ptr_option);
+if (ptr_option)
+{
+ /* опција је пронађена */
+}
+else
+{
+ /* опција није пронађена */
+}
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== config_search_with_string
+
+Враћа инфо о фајлу/одељку/опцији опције са пуним именом.
+
+Прототип:
+
+[source, C]
+----
+void weechat_config_search_with_string (const char *option_name,
+ struct t_config_file **config_file,
+ struct t_config_section **section,
+ struct t_config_option **option,
+ char **pos_option_name);
+----
+
+Аргументи:
+
+* _option_name_: пуно име опције (у формату: „фајл.одељак.опција”)
+* _config_file_: показивач на показивач конфигурационог фајла, ако се опција пронађе, поставиће се на показивач конфигурационог фајла
+* _section_: показивач на показивач одељка, ако се пронађе, поставиће се на одељак у коме је опција
+* _option_: показивач на показивач опције, ако се пронађе, поставиће се на показивач опције
+* _pos_option_name_: показивач на показивач стринга, ако се пронађе, поставиће се на показивач имена опције
+
+C пример:
+
+[source, C]
+----
+struct t_config_file *ptr_config_file;
+struct t_config_section *ptr_section;
+struct t_config_option *ptr_option;
+char *option_name;
+
+weechat_config_search_with_string ("file.section.option",
+ &ptr_config_file,
+ &ptr_section,
+ &ptr_option,
+ &option_name);
+if (ptr_option)
+{
+ /* опција је пронађена */
+}
+else
+{
+ /* опција није пронађена */
+}
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== config_string_to_boolean
+
+Проверава да ли је текст „true” или „false”, као логичка вредност.
+
+Прототип:
+
+[source, C]
+----
+int weechat_config_string_to_boolean (const char *text);
+----
+
+Аргументи:
+
+* _text_: текст који се анализира
+
+Повратна вредност:
+
+* 1 ако је текст „true” („on”, „yes”, „y”, „true”, „t”, „1”)
+* 0 ако је текст „false” („off”, „no”, „n”, „false”, „f”, „0”)
+
+C пример:
+
+[source, C]
+----
+if (weechat_config_string_to_boolean (option_value))
+{
+ /* вредност је "true" */
+}
+else
+{
+ /* вредност је "false" */
+}
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def config_string_to_boolean(text: str) -> int: ...
+
+# пример
+if weechat.config_string_to_boolean(text):
+ # ...
+----
+
+==== config_option_reset
+
+Ресетује опцију на њену подразумевану вредности.
+
+Прототип:
+
+[source, C]
+----
+int weechat_config_option_reset (struct t_config_option *option,
+ int run_callback);
+----
+
+Аргументи:
+
+* _option_: показивач на опцију
+* _run_callback_: 1 за позив функције повратног позива ако је вредност опције промењена, у супротном 0
+
+Повратна вредност:
+
+* _WEECHAT_CONFIG_OPTION_SET_OK_CHANGED_ ако је вредност опције ресетована
+* _WEECHAT_CONFIG_OPTION_SET_OK_SAME_VALUE_ ако вредност није измењена
+* _WEECHAT_CONFIG_OPTION_SET_ERROR_ ако је дошло до грешке
+
+C пример:
+
+[source, C]
+----
+switch (weechat_config_option_reset (option, 1))
+{
+ case WEECHAT_CONFIG_OPTION_SET_OK_CHANGED:
+ /* .... */
+ break;
+ case WEECHAT_CONFIG_OPTION_SET_OK_SAME_VALUE:
+ /* .... */
+ break;
+ case WEECHAT_CONFIG_OPTION_SET_ERROR:
+ /* .... */
+ break;
+}
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def config_option_reset(option: str, run_callback: int) -> int: ...
+
+# пример
+rc = weechat.config_option_reset(option, 1)
+if rc == weechat.WEECHAT_CONFIG_OPTION_SET_OK_CHANGED:
+ # ...
+elif rc == weechat.WEECHAT_CONFIG_OPTION_SET_OK_SAME_VALUE:
+ # ...
+elif rc == weechat.WEECHAT_CONFIG_OPTION_SET_ERROR:
+ # ...
+----
+
+==== config_option_set
+
+Поставља нову вредност опције.
+
+Прототип:
+
+[source, C]
+----
+int weechat_config_option_set (struct t_config_option *option,
+ const char *value, int run_callback);
+----
+
+Аргументи:
+
+* _option_: показивач на опцију
+* _value_: нова вредност опције, могуће су и специјалне вредности које зависе од типа опције:
+** _boolean_:
+*** `toggle`: пребацује текућу вредност
+** _integer_ или _color_:
+*** `++N`: додаје `N` (било који цео број) на текућу вредност
+*** `--N`: одузима `N` (било који цео број) од текуће вредности
+* _run_callback_: 1 за позив change функције повратног позива ако је вредност измењена, у супротном 0
+
+Повратна вредност:
+
+* _WEECHAT_CONFIG_OPTION_SET_OK_CHANGED_ ако је вредност опције измењена
+* _WEECHAT_CONFIG_OPTION_SET_OK_SAME_VALUE_ ако вредност није измењена
+* _WEECHAT_CONFIG_OPTION_SET_ERROR_ ако је дошло до грешке
+
+C пример:
+
+[source, C]
+----
+switch (weechat_config_option_set (option, "new_value", 1))
+{
+ case WEECHAT_CONFIG_OPTION_SET_OK_CHANGED:
+ /* .... */
+ break;
+ case WEECHAT_CONFIG_OPTION_SET_OK_SAME_VALUE:
+ /* .... */
+ break;
+ case WEECHAT_CONFIG_OPTION_SET_ERROR:
+ /* .... */
+ break;
+}
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def config_option_set(option: str, value: str, run_callback: int) -> int: ...
+
+# пример
+rc = weechat.config_option_set(option, "new_value", 1)
+if rc == weechat.WEECHAT_CONFIG_OPTION_SET_OK_CHANGED:
+ # ...
+elif rc == weechat.WEECHAT_CONFIG_OPTION_SET_OK_SAME_VALUE:
+ # ...
+elif rc == weechat.WEECHAT_CONFIG_OPTION_SET_ERROR:
+ # ...
+----
+
+==== config_option_set_null
+
+Поставља опцију на null (недефинисану вредност).
+
+Прототип:
+
+[source, C]
+----
+int weechat_config_option_set_null (struct t_config_option *option,
+ int run_callback);
+----
+
+Аргументи:
+
+* _option_: показивач на опцију
+* _run_callback_: 1 за позив change функције повратног позива ако је вредност опције измењена, у супротном 0
+
+[NOTE]
+Вредност можете да поставите на null само ако је то дозвољено за опцију (погледајте <<_config_new_option,config_new_option>>).
+
+Повратна вредност:
+
+* _WEECHAT_CONFIG_OPTION_SET_OK_CHANGED_ ако је вредност опције измењена
+* _WEECHAT_CONFIG_OPTION_SET_OK_SAME_VALUE_ ако вредност није измењена
+* _WEECHAT_CONFIG_OPTION_SET_ERROR_ ако је дошло до грешке
+
+C пример:
+
+[source, C]
+----
+switch (weechat_config_option_set_null (option, 1))
+{
+ case WEECHAT_CONFIG_OPTION_SET_OK_CHANGED:
+ /* .... */
+ break;
+ case WEECHAT_CONFIG_OPTION_SET_OK_SAME_VALUE:
+ /* .... */
+ break;
+ case WEECHAT_CONFIG_OPTION_SET_ERROR:
+ /* .... */
+ break;
+}
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def config_option_set_null(option: str, run_callback: int) -> int: ...
+
+# пример
+rc = weechat.config_option_set_null(option, 1)
+if rc == weechat.WEECHAT_CONFIG_OPTION_SET_OK_CHANGED:
+ # ...
+elif rc == weechat.WEECHAT_CONFIG_OPTION_SET_OK_SAME_VALUE:
+ # ...
+elif rc == weechat.WEECHAT_CONFIG_OPTION_SET_ERROR:
+ # ...
+----
+
+==== config_option_unset
+
+Уклања/ресетује опцију.
+
+Прототип:
+
+[source, C]
+----
+int weechat_config_option_unset (struct t_config_option *option);
+----
+
+Аргументи:
+
+* _option_: показивач на опцију
+
+Повратна вредност:
+
+* _WEECHAT_CONFIG_OPTION_UNSET_OK_NO_RESET_ ако вредност опције није ресетована
+* _WEECHAT_CONFIG_OPTION_UNSET_OK_RESET_ ако је вредност опције ресетована
+* _WEECHAT_CONFIG_OPTION_UNSET_OK_REMOVED_ ако је опција уклоњена
+* _WEECHAT_CONFIG_OPTION_UNSET_ERROR_ ако је дошло до грешке
+
+C пример:
+
+[source, C]
+----
+switch (weechat_config_option_unset (option))
+{
+ case WEECHAT_CONFIG_OPTION_UNSET_OK_NO_RESET:
+ /* .... */
+ break;
+ case WEECHAT_CONFIG_OPTION_UNSET_OK_RESET:
+ /* .... */
+ break;
+ case WEECHAT_CONFIG_OPTION_UNSET_OK_REMOVED:
+ /* .... */
+ break;
+ case WEECHAT_CONFIG_OPTION_UNSET_ERROR:
+ /* .... */
+ break;
+}
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def config_option_unset(option: str) -> int: ...
+
+# пример
+rc = weechat.config_option_unset(option)
+if rc == weechat.WEECHAT_CONFIG_OPTION_UNSET_OK_NO_RESET:
+ # ...
+elif rc == weechat.WEECHAT_CONFIG_OPTION_UNSET_OK_RESET:
+ # ...
+elif rc == weechat.WEECHAT_CONFIG_OPTION_UNSET_OK_REMOVED:
+ # ...
+elif rc == weechat.WEECHAT_CONFIG_OPTION_UNSET_ERROR:
+ # ...
+----
+
+==== config_option_rename
+
+Мења име опције.
+
+Прототип:
+
+[source, C]
+----
+void weechat_config_option_rename (struct t_config_option *option,
+ const char *new_name);
+----
+
+Аргументи:
+
+* _option_: показивач на опцију
+* _new_name_: ново име опције
+
+C пример:
+
+[source, C]
+----
+weechat_config_option_rename (option, "new_name");
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def config_option_rename(option: str, new_name: str) -> int: ...
+
+# пример
+weechat.config_option_rename(option, "new_name")
+----
+
+==== config_option_get_string
+
+_WeeChat ≥ 1.9._
+
+Враћа стринг вредност особине опције.
+
+Прототип:
+
+[source, C]
+----
+const char *weechat_config_option_get_string (struct t_config_option *option,
+ const char *property);
+----
+
+Аргументи:
+
+* _option_: показивач на опцију
+* _property_: име особине:
+** _config_name_: име фајла
+** _section_name_: име одељка
+** _name_: име опције
+** _parent_name_: име родитељске опције
+** _type_: тип опције, једно од:
+*** _boolean_
+*** _integer_
+*** _string_
+*** _color_
+** _description_: опис опције
+
+Повратна вредност:
+
+* стринг вредност особине
+
+C пример:
+
+[source, C]
+----
+const char *type = weechat_config_option_get_string (option, "type");
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== config_option_get_pointer
+
+Враћа показивач на особину опције.
+
+Прототип:
+
+[source, C]
+----
+void *weechat_config_option_get_pointer (struct t_config_option *option,
+ const char *property);
+----
+
+Аргументи:
+
+* _option_: показивач на опцију
+* _property_: име особине:
+** _config_file_: показивач на конфигурациони фајл (_struct t_config_file *_)
+** _section_: показивач на одељак (_struct t_config_section *_)
+** _name_: име опције (_char *_)
+** _parent_name_: име родитељске опције (_char *_) _(WeeChat ≥ 1.4)_
+** _type_: тип опције (_int *_)
+** _description_: опис опције (_char *_)
+** _string_values_: стринг вредности (_char *_)
+** _min_: минимална вредност (_int *_)
+** _max_: максимална вредност (_int *_)
+** _default_value_: подразумевана вредност (зависи од типа)
+** _value_: текућа вредност (зависи од типа)
+** _prev_option_: показивач на претходну опцију (_struct t_config_option *_)
+** _next_option_: показивач на наредну опцију (_struct t_config_option *_)
+
+Повратна вредност:
+
+* показивач на тражену опцију
+
+C пример:
+
+[source, C]
+----
+char *description = weechat_config_option_get_pointer (option, "description");
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== config_option_is_null
+
+Проверава да ли је опција „null” (недефинисана вредност).
+
+Прототип:
+
+[source, C]
+----
+int weechat_config_option_is_null (struct t_config_option *option);
+----
+
+Аргументи:
+
+* _option_: показивач на опцију
+
+Повратна вредност:
+
+* 1 ако је вредност опције „null”
+* 0 ако вредност опције није „null”
+
+C пример:
+
+[source, C]
+----
+if (weechat_config_option_is_null (option))
+{
+ /* вредност је "null" */
+}
+else
+{
+ /* вредност није "null" */
+}
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# пример
+def config_option_is_null(option: str) -> int: ...
+ # ...
+
+# пример
+if weechat.config_option_is_null(option):
+ # ...
+----
+
+==== config_option_default_is_null
+
+Проверава да ли је подразумевана вредност опције „null” (недефинисана вредност).
+
+Прототип:
+
+[source, C]
+----
+int weechat_config_option_default_is_null (struct t_config_option *option);
+----
+
+Аргументи:
+
+* _option_: показивач на опцију
+
+Повратна вредност:
+
+* 1 ако је подразумевана вредност опције „null”
+* 0 ако подразумевана вредност опције није „null”
+
+C пример:
+
+[source, C]
+----
+if (weechat_config_option_default_is_null (option))
+{
+ /* подразумевана вредност је "null" */
+}
+else
+{
+ /* подразумевана вредност није "null" */
+}
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# пример
+def config_option_default_is_null(option: str) -> int: ...
+
+# пример
+if weechat.config_option_default_is_null(option):
+ # ...
+----
+
+==== config_boolean
+
+Враћа логичку вредност опције.
+
+Прототип:
+
+[source, C]
+----
+int weechat_config_boolean (struct t_config_option *option);
+----
+
+Аргументи:
+
+* _option_: показивач на опцију
+
+Повратна вредност, зависи од типа опције:
+
+* _boolean_: логичка вредност опције (0 или 1)
+* _integer_: 0
+* _string_: 0
+* _color_: 0
+
+C пример:
+
+[source, C]
+----
+struct t_config_option *option = weechat_config_get ("plugin.section.option");
+if (weechat_config_boolean (option))
+{
+ /* вредност је "true" */
+}
+else
+{
+ /* вредност је "false" */
+}
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def config_boolean(option: str) -> int: ...
+
+# пример
+option = weechat.config_get("plugin.section.option")
+if weechat.config_boolean(option):
+ # ...
+----
+
+==== config_boolean_default
+
+Враћа подразумевану логичку вредност опције.
+
+Прототип:
+
+[source, C]
+----
+int weechat_config_boolean_default (struct t_config_option *option);
+----
+
+Аргументи:
+
+* _option_: показивач на опцију
+
+Повратна вредност, зависи од типа опције:
+
+* _boolean_: подразумевана логичка вредност опције (0 или 1)
+* _integer_: 0
+* _string_: 0
+* _color_: 0
+
+C пример:
+
+[source, C]
+----
+struct t_config_option *option = weechat_config_get ("plugin.section.option");
+if (weechat_config_boolean_default (option))
+{
+ /* вредност је "true" */
+}
+else
+{
+ /* вредност је "false" */
+}
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def config_boolean_default(option: str) -> int: ...
+
+# пример
+option = weechat.config_get("plugin.section.option")
+if weechat.config_boolean_default(option):
+ # ...
+----
+
+==== config_integer
+
+Враћа целобројну вредност опције.
+
+Прототип:
+
+[source, C]
+----
+int weechat_config_integer (struct t_config_option *option);
+----
+
+Аргументи:
+
+* _option_: показивач на опцију
+
+Повратна вредност, зависи од типа опције:
+
+* _boolean_: логичка вредност опције (0 или 1)
+* _integer_: целобројна вредност опције
+* _string_: 0
+* _color_: индекс боје
+
+C пример:
+
+[source, C]
+----
+struct t_config_option *option = weechat_config_get ("plugin.section.option");
+int value = weechat_config_integer (option);
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def config_integer(option: str) -> int: ...
+
+# пример
+option = weechat.config_get("plugin.section.option")
+value = weechat.config_integer(option)
+----
+
+==== config_integer_default
+
+Враћа подразумевану целобројну вредност опције.
+
+Прототип:
+
+[source, C]
+----
+int weechat_config_integer_default (struct t_config_option *option);
+----
+
+Аргументи:
+
+* _option_: показивач на опцију
+
+Повратна вредност, зависи од типа опције:
+
+* _boolean_: подразумевана логичка вредност опције (0 или 1)
+* _integer_: подразумевана целобројна вредност опције
+* _string_: 0
+* _color_: подразумевани индекс боје
+
+C пример:
+
+[source, C]
+----
+struct t_config_option *option = weechat_config_get ("plugin.section.option");
+int value = weechat_config_integer_default (option);
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def config_integer_default(option: str) -> int: ...
+
+# пример
+option = weechat.config_get("plugin.section.option")
+value = weechat.config_integer_default(option)
+----
+
+==== config_string
+
+Враћа стринг вредност опције.
+
+Прототип:
+
+[source, C]
+----
+const char *weechat_config_string (struct t_config_option *option);
+----
+
+Аргументи:
+
+* _option_: показивач на опцију
+
+Повратна вредност, зависи од типа опције:
+
+* _boolean_: „on” ако је вредност истинита, у супротном „off”
+* _integer_: стринг вредност опције је цео број са стринг вредностима, у супротном је NULL
+* _string_: стринг вредност опције
+* _color_: име боје
+
+C пример:
+
+[source, C]
+----
+struct t_config_option *option = weechat_config_get ("plugin.section.option");
+const char *value = weechat_config_string (option);
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def config_string(option: str) -> str: ...
+
+# пример
+option = weechat.config_get("plugin.section.option")
+value = weechat.config_string(option)
+----
+
+==== config_string_default
+
+Враћа подразумевану стринг вредност опције.
+
+Прототип:
+
+[source, C]
+----
+const char *weechat_config_string_default (struct t_config_option *option);
+----
+
+Аргументи:
+
+* _option_: показивач на опцију
+
+Повратна вредност, зависи од типа опције:
+
+* _boolean_: „on” ако је подразумевана вредност истинита, у супротном „off”
+* _integer_: подразумевана стринг вредност опције је цео број са стринг вредностима, у супротном је NULL
+* _string_: подразумевана стринг вредност опције
+* _color_: име подразумеване боје
+
+C пример:
+
+[source, C]
+----
+struct t_config_option *option = weechat_config_get ("plugin.section.option");
+const char *value = weechat_config_string_default (option);
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def config_string_default(option: str) -> str: ...
+
+# пример
+option = weechat.config_get("plugin.section.option")
+value = weechat.config_string_default(option)
+----
+
+==== config_color
+
+Враћа вредност опције као боју.
+
+Прототип:
+
+[source, C]
+----
+const char *weechat_config_color (struct t_config_option *option);
+----
+
+Аргументи:
+
+* _option_: показивач на опцију
+
+Повратна вредност, зависи од типа опције:
+
+* _boolean_: NULL
+* _integer_: NULL
+* _string_: NULL
+* _color_: име боје
+
+C пример:
+
+[source, C]
+----
+struct t_config_option *option = weechat_config_get ("plugin.section.option");
+const char *color = weechat_config_color (option);
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def config_color(option: str) -> str: ...
+
+# пример
+option = weechat.config_get("plugin.section.option")
+value = weechat.config_color(option)
+----
+
+==== config_color_default
+
+Враћа подразумевану вредност опције као боју.
+
+Прототип:
+
+[source, C]
+----
+const char *weechat_config_color_default (struct t_config_option *option);
+----
+
+Аргументи:
+
+* _option_: показивач на опцију
+
+Повратна вредност, зависи од типа опције:
+
+* _boolean_: NULL
+* _integer_: NULL
+* _string_: NULL
+* _color_: име подразумеване боје
+
+C пример:
+
+[source, C]
+----
+struct t_config_option *option = weechat_config_get ("plugin.section.option");
+const char *color = weechat_config_color_default (option);
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def config_color_default(option: str) -> str: ...
+
+# пример
+option = weechat.config_get("plugin.section.option")
+value = weechat.config_color_default(option)
+----
+
+==== config_write_option
+
+Уписује линију у конфигурациони фајл са опцијом и њеном вредности (ова функција би требало да се позове само у „write” или „write_default” функцијама повратног позива за одељак).
+
+Прототип:
+
+[source, C]
+----
+void weechat_config_write_option (struct t_config_file *config_file,
+ struct t_config_option *option);
+----
+
+Аргументи:
+
+* _config_file_: показивач на конфигурациони фајл
+* _option_: показивач на опцију
+
+C пример:
+
+[source, C]
+----
+int
+my_section_write_cb (const void *pointer, void *data,
+ struct t_config_file *config_file,
+ const char *section_name)
+{
+ weechat_config_write_line (config_file, "my_section", NULL);
+
+ weechat_config_write_option (config_file, option);
+
+ return WEECHAT_RC_OK;
+}
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def config_write_option(config_file: str, option: str) -> int: ...
+
+# пример
+def my_section_write_cb(data, config_file, section_name):
+ weechat.config_write_line(config_file, "my_section", "")
+ weechat.config_write_option(config_file, option)
+ return weechat.WEECHAT_RC_OK
+----
+
+==== config_write_line
+
+Уписује линију у конфигурациони фајл (ова функција би требало да се позива само у „write” или „write_default” функцијама повратног позива за одељак).
+
+Прототип:
+
+[source, C]
+----
+void weechat_config_write_line (struct t_config_file *config_file,
+ const char *option_name,
+ const char *value, ...);
+----
+
+Аргументи:
+
+* _config_file_: показивач на конфигурациони фајл
+* _option_name_: име опције
+* _value_: вредност (ако је NULL, онда се уписује линија са именом одељка, на пример: "[section]")
+
+C пример:
+
+[source, C]
+----
+int
+my_section_write_cb (const void *pointer, void *data,
+ struct t_config_file *config_file,
+ const char *section_name)
+{
+ weechat_config_write_line (config_file, "my_section", NULL);
+
+ weechat_config_write_line (config_file, "option", "%s;%d",
+ "value", 123);
+
+ return WEECHAT_RC_OK;
+}
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def config_write_line(config_file: str, option_name: str, value: str) -> int: ...
+
+# пример
+def my_section_write_cb(data, config_file, section_name):
+ weechat.config_write_line(config_file, "my_section", "")
+ weechat.config_write_line(config_file, "option", "value")
+ return weechat.WEECHAT_RC_OK
+----
+
+==== config_write
+
+Уписује конфигурациони фајл на диск.
+
+Прототип:
+
+[source, C]
+----
+int weechat_config_write (struct t_config_file *config_file);
+----
+
+Аргументи:
+
+* _config_file_: показивач на конфигурациони фајл
+
+Повратна вредност:
+
+* _WEECHAT_CONFIG_WRITE_OK_ ако је конфигурација уписана
+* _WEECHAT_CONFIG_WRITE_MEMORY_ERROR_ ако није било довољно слободне меморије
+* _WEECHAT_CONFIG_WRITE_ERROR_ ако је дошло до неке друге грешке
+
+C пример:
+
+[source, C]
+----
+switch (weechat_config_write (config_file))
+{
+ case WEECHAT_CONFIG_WRITE_OK:
+ /* ... */
+ break;
+ case WEECHAT_CONFIG_WRITE_MEMORY_ERROR:
+ /* ... */
+ break;
+ case WEECHAT_CONFIG_WRITE_ERROR:
+ /* ... */
+ break;
+}
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def config_write(config_file: str) -> int: ...
+
+# пример
+rc = weechat.config_write(config_file)
+if rc == weechat.WEECHAT_CONFIG_WRITE_OK:
+ # ...
+elif rc == weechat.WEECHAT_CONFIG_WRITE_MEMORY_ERROR:
+ # ...
+elif rc == weechat.WEECHAT_CONFIG_WRITE_ERROR:
+ # ...
+----
+
+==== config_read
+
+Чита конфигурациони фајл са диска.
+
+Прототип:
+
+[source, C]
+----
+int weechat_config_read (struct t_config_file *config_file);
+----
+
+Аргументи:
+
+* _config_file_: показивач на конфигурациони фајл
+
+Повратна вредност:
+
+* _WEECHAT_CONFIG_READ_OK_ ако је конфигурација учитана
+* _WEECHAT_CONFIG_READ_MEMORY_ERROR_ ако није било довољно слободне меморије
+* _WEECHAT_CONFIG_READ_FILE_NOT_FOUND_ ако фајл није пронађен
+
+C пример:
+
+[source, C]
+----
+switch (weechat_config_read (config_file))
+{
+ case WEECHAT_CONFIG_READ_OK:
+ /* ... */
+ break;
+ case WEECHAT_CONFIG_READ_MEMORY_ERROR:
+ /* ... */
+ break;
+ case WEECHAT_CONFIG_READ_FILE_NOT_FOUND:
+ /* ... */
+ break;
+}
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def config_read(config_file: str) -> int: ...
+
+# пример
+rc = weechat.config_read(config_file)
+if rc == weechat.WEECHAT_CONFIG_READ_OK:
+ # ...
+elif rc == weechat.WEECHAT_CONFIG_READ_MEMORY_ERROR:
+ # ...
+elif rc == weechat.WEECHAT_CONFIG_READ_FILE_NOT_FOUND:
+ # ...
+----
+
+==== config_reload
+
+Поново учитава конфигурацију са диска.
+
+Прототип:
+
+[source, C]
+----
+int weechat_config_reload (struct t_config_file *config_file);
+----
+
+Аргументи:
+
+* _config_file_: показивач на конфигурациони фајл
+
+Повратна вредност:
+
+* _WEECHAT_CONFIG_READ_OK_ ако је конфигурација поново учитана
+* _WEECHAT_CONFIG_READ_MEMORY_ERROR_ ако није било довољно слободне меморије
+* _WEECHAT_CONFIG_READ_FILE_NOT_FOUND_ ако фајл није пронађен
+
+C пример:
+
+[source, C]
+----
+switch (weechat_config_reload (config_file))
+{
+ case WEECHAT_CONFIG_READ_OK:
+ /* ... */
+ break;
+ case WEECHAT_CONFIG_READ_MEMORY_ERROR:
+ /* ... */
+ break;
+ case WEECHAT_CONFIG_READ_FILE_NOT_FOUND:
+ /* ... */
+ break;
+}
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def config_reload(config_file: str) -> int: ...
+
+# пример
+rc = weechat.config_reload(config_file)
+if rc == weechat.WEECHAT_CONFIG_READ_OK:
+ # ...
+elif rc == weechat.WEECHAT_CONFIG_READ_MEMORY_ERROR:
+ # ...
+elif rc == weechat.WEECHAT_CONFIG_READ_FILE_NOT_FOUND:
+ # ...
+----
+
+==== config_option_free
+
+Ослобађа меморију коју заузима опција.
+
+Прототип:
+
+[source, C]
+----
+void weechat_config_option_free (struct t_config_option *option);
+----
+
+Аргументи:
+
+* _option_: показивач на опцију
+
+C пример:
+
+[source, C]
+----
+weechat_config_option_free (option);
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def config_option_free(option: str) -> int: ...
+
+# пример
+weechat.config_option_free(option)
+----
+
+==== config_section_free_options
+
+Ослобађа меморију коју заузимају све опцију у одељку.
+
+Прототип:
+
+[source, C]
+----
+void weechat_config_section_free_options (struct t_config_section *section);
+----
+
+Аргументи:
+
+* _section_: показивач на одељак
+
+C пример:
+
+[source, C]
+----
+weechat_config_section_free_options (section);
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def config_section_free_options(section: str) -> int: ...
+
+# пример
+weechat.config_section_free_options(section)
+----
+
+==== config_section_free
+
+Ослобађа меморију коју заузима одељак.
+
+Прототип:
+
+[source, C]
+----
+void weechat_config_section_free (struct t_config_section *section);
+----
+
+Аргументи:
+
+* _section_: показивач на одељак
+
+C пример:
+
+[source, C]
+----
+weechat_config_section_free (section);
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def config_section_free(section: str) -> int: ...
+
+# пример
+weechat.config_section_free(section)
+----
+
+==== config_free
+
+Ослобађа меморију коју заузима конфигурациони фајл.
+
+Прототип:
+
+[source, C]
+----
+void weechat_config_free (struct t_config_file *config_file);
+----
+
+Аргументи:
+
+* _config_file_: показивач на конфигурациони фајл
+
+C пример:
+
+[source, C]
+----
+weechat_config_free (config_file);
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def config_free(config_file: str) -> int: ...
+
+# пример
+weechat.config_free(config_file)
+----
+
+==== config_get
+
+Тражи опцију према пуном имену.
+
+Прототип:
+
+[source, C]
+----
+struct t_config_option *weechat_config_get (const char *option_name);
+----
+
+Аргументи:
+
+* _option_name_: пуно име опције (у формату: „фајл.одељак.опција”)
+
+Повратна вредност:
+
+* показивач на нађену опцију, NULL у случају да се опција не нађе
+
+C пример:
+
+[source, C]
+----
+struct t_config_option *option = weechat_config_get ("weechat.look.item_time_format");
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def config_get(option_name: str) -> str: ...
+
+# пример
+option = weechat.config_get("weechat.look.item_time_format")
+----
+
+==== config_get_plugin
+
+Тражи опцију у конфигурационом фајлу додатака (plugins.conf).
+
+Прототип:
+
+[source, C]
+----
+const char *weechat_config_get_plugin (const char *option_name);
+----
+
+Аргументи:
+
+* _option_name_: име опције, програм WeeChat ће додати префикс „plugins.var.xxx.”(где је „xxx” име текућег додатка)
+
+Повратна вредност:
+
+* вредност пронађене опције, NULL у случају да се опција не пронађе
+
+C пример:
+
+[source, C]
+----
+/* ако је текући додатак „test”, онда се у фајлу plugins.conf
+ тражи вредност опције „plugins.var.test.option” */
+char *value = weechat_config_get_plugin ("option");
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def config_get_plugin(option_name: str) -> str: ...
+
+# пример
+value = weechat.config_get_plugin("option")
+----
+
+==== config_is_set_plugin
+
+Проверава да ли је опција постављена у конфигурационом фајлу додатака (plugins.conf).
+
+Прототип:
+
+[source, C]
+----
+int weechat_config_is_set_plugin (const char *option_name);
+----
+
+Аргументи:
+
+* _option_name_: име опције, програм WeeChat ће додати префикс „plugins.var.xxx.”(где је „xxx” име текућег додатка)
+
+Повратна вредност:
+
+* 1 ако је опција постављена, 0 ако опција не постоји
+
+C пример:
+
+[source, C]
+----
+if (weechat_config_is_set_plugin ("option"))
+{
+ /* опција је постављена */
+}
+else
+{
+ /* опција не постоји */
+}
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def config_is_set_plugin(option_name: str) -> int: ...
+
+# пример
+if weechat.config_is_set_plugin("option"):
+ # опција је постављена
+ # ...
+else:
+ # опција не постоји
+ # ...
+----
+
+==== config_set_plugin
+
+Поставља нову вредност опције у конфигурационом фајлу додатака (plugins.conf).
+
+Прототип:
+
+[source, C]
+----
+int weechat_config_set_plugin (const char *option_name, const char *value);
+----
+
+Аргументи:
+
+* _option_name_: име опције, програм WeeChat ће додати префикс „plugins.var.xxx.”(где је „xxx” име текућег додатка)
+* _value_: нова вредност опције
+
+Повратна вредност:
+
+* _WEECHAT_CONFIG_OPTION_SET_OK_CHANGED_ ако је вредност опције измењена
+* _WEECHAT_CONFIG_OPTION_SET_OK_SAME_VALUE_ ако вредност није измењена
+* _WEECHAT_CONFIG_OPTION_SET_OPTION_NOT_FOUND_ ако опција није пронађена
+* _WEECHAT_CONFIG_OPTION_SET_ERROR_ ако је дошло до неке друге грешке
+
+C пример:
+
+[source, C]
+----
+switch (weechat_config_set_plugin ("option", "test_value"))
+{
+ case WEECHAT_CONFIG_OPTION_SET_OK_CHANGED:
+ /* ... */
+ break;
+ case WEECHAT_CONFIG_OPTION_SET_OK_SAME_VALUE:
+ /* ... */
+ break;
+ case WEECHAT_CONFIG_OPTION_SET_OPTION_NOT_FOUND:
+ /* ... */
+ break;
+ case WEECHAT_CONFIG_OPTION_SET_ERROR:
+ /* ... */
+ break;
+}
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def config_set_plugin(option_name: str, value: str) -> int: ...
+
+# пример
+rc = weechat.config_set_plugin("option", "test_value")
+if rc == weechat.WEECHAT_CONFIG_OPTION_SET_OK_CHANGED:
+ # ...
+elif rc == weechat.WEECHAT_CONFIG_OPTION_SET_OK_SAME_VALUE:
+ # ...
+elif rc == weechat.WEECHAT_CONFIG_OPTION_SET_OPTION_NOT_FOUND:
+ # ...
+elif rc == weechat.WEECHAT_CONFIG_OPTION_SET_ERROR:
+ # ...
+----
+
+==== config_set_desc_plugin
+
+_WeeChat ≥ 0.3.5._
+
+Поставља опис за опцију у конфигурационом фајлу додатака (plugins.conf).
+
+Прототип:
+
+[source, C]
+----
+void weechat_config_set_desc_plugin (const char *option_name,
+ const char *description);
+----
+
+Аргументи:
+
+* _option_name_: име опције, програм WeeChat ће додати префикс „plugins.desc.xxx.”(где је „xxx” име текућег додатка)
+* _description_: опис опције
+
+[NOTE]
+Ако опција (plugins.var.xxx.име_опције) не постоји, то не представља проблем. Будуће креирање опције под овим именом ће употребити овај опис.
+
+C пример:
+
+[source, C]
+----
+weechat_config_set_desc_plugin ("option", "description of option");
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def config_set_desc_plugin(option_name: str, description: str) -> int: ...
+
+# пример
+version = weechat.info_get("version_number", "") or 0
+if int(version) >= 0x00030500:
+ weechat.config_set_desc_plugin("option", "description of option")
+----
+
+==== config_unset_plugin
+
+Брише опцију из конфигурационог фајла додатака (plugins.conf).
+
+Прототип:
+
+[source, C]
+----
+int weechat_config_unset_plugin (const char *option_name);
+----
+
+Аргументи:
+
+* _option_name_: име опције, програм WeeChat ће додати префикс „plugins.var.xxx.”(где је „xxx” име текућег додатка)
+
+Повратна вредност:
+
+* _WEECHAT_CONFIG_OPTION_UNSET_OK_NO_RESET_ ако вредност опције није ресетована
+* _WEECHAT_CONFIG_OPTION_UNSET_OK_RESET_ ако је вредност опције ресетована
+* _WEECHAT_CONFIG_OPTION_UNSET_OK_REMOVED_ ако је опција уклоњена
+* _WEECHAT_CONFIG_OPTION_UNSET_ERROR_ ако је дошло до грешке
+
+C пример:
+
+[source, C]
+----
+switch (weechat_config_unset_plugin ("option"))
+{
+ case WEECHAT_CONFIG_OPTION_UNSET_OK_NO_RESET:
+ /* ... */
+ break;
+ case WEECHAT_CONFIG_OPTION_UNSET_OK_RESET:
+ /* ... */
+ break;
+ case WEECHAT_CONFIG_OPTION_UNSET_OK_REMOVED:
+ /* ... */
+ break;
+ case WEECHAT_CONFIG_OPTION_UNSET_ERROR:
+ /* ... */
+ break;
+}
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def config_unset_plugin(option_name: str) -> int: ...
+
+# пример
+rc = weechat.config_unset_plugin("option")
+if rc == weechat.WEECHAT_CONFIG_OPTION_UNSET_OK_NO_RESET:
+ # ...
+elif rc == weechat.WEECHAT_CONFIG_OPTION_UNSET_OK_RESET:
+ # ...
+elif rc == weechat.WEECHAT_CONFIG_OPTION_UNSET_OK_REMOVED:
+ # ...
+elif rc == weechat.WEECHAT_CONFIG_OPTION_UNSET_ERROR:
+ # ...
+----
+
+[[key_bindings]]
+=== Тастерске пречице
+
+Функције за тастерске пречице.
+
+==== key_bind
+
+_WeeChat ≥ 0.3.6, ажурирано у верзији 1.8._
+
+Додаје нове тастерске пречице.
+
+[NOTE]
+За разлику од команде `/key bind`, ова функција никада неће изменити постојећу тастерску пречицу, може само да креира нове. Ако желите да уклоните тастерску пречицу, употребите <<_key_unbind,key_unbind>>.
+
+Прототип:
+
+[source, C]
+----
+int weechat_key_bind (const char *context, struct t_hashtable *keys);
+----
+
+:key_bind_quiet: __quiet
+
+Аргументи:
+
+* _context_: контекст за тастере:
+** _default_: подразумевани контекст (уобичајене акције)
+** _search_: контекст претраге (када се тражи текст у баферу)
+** _cursor_: слободно померање курсора по екрану
+** _mouse_: тастери за догађаје миша
+* _keys_: хеш табела са тастерским пречицама; може да садржи следеће специјалне кључеве:
+** _{key_bind_quiet}_: не приказују се пречице додате у _core_ бафер _(WeeChat ≥ 1.8)_
+
+Повратна вредност:
+
+* број додатих тастерских пречица
+
+C пример:
+
+[source, C]
+----
+struct t_hashtable *keys = weechat_hashtable_new (8,
+ WEECHAT_HASHTABLE_STRING,
+ WEECHAT_HASHTABLE_STRING,
+ NULL,
+ NULL);
+if (keys)
+{
+ weechat_hashtable_set (keys, "@chat(plugin.buffer):button1", "hsignal:test_mouse");
+ weechat_hashtable_set (keys, "@chat(plugin.buffer):wheelup", "/mycommand up");
+ weechat_hashtable_set (keys, "@chat(plugin.buffer):wheeldown", "/mycommand down");
+ weechat_key_bind ("mouse", keys);
+ weechat_hashtable_free (keys);
+}
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def key_bind(context: str, keys: Dict[str, str]) -> int: ...
+
+# пример
+keys = {"@chat(python.test):button1": "hsignal:test_mouse",
+ "@chat(python.test):wheelup": "/mycommand up",
+ "@chat(python.test):wheeldown": "/mycommand down"}
+weechat.key_bind("mouse", keys)
+----
+
+==== key_unbind
+
+_WeeChat ≥ 0.3.6, ажурирано у верзији 2.0._
+
+Уклања тастерску пречицу (или више њих).
+
+[WARNING]
+Када се ова функција позива, обезбедите да не уклоните корисникове тастерске пречице.
+
+Прототип:
+
+[source, C]
+----
+int weechat_key_unbind (const char *context, const char *key);
+----
+
+Аргументи:
+
+* _context_: контекст за тастере (погледајте <<_key_bind,key_bind>>)
+* _key_: тастер који се уклања или специјална вредност „area:XXX” којом се уклањају све пречице које имају _XXX_ као први или други део; ако тастер почиње са „quiet:”, тастери који се уклањају се неће приказати у _core_ баферу _(WeeChat ≥ 2.0)_.
+
+Повратна вредност:
+
+* број уклоњених тастерских пречица
+
+C примери:
+
+[source, C]
+----
+/* уклања једну тастерску пречицу */
+weechat_key_unbind ("mouse", "@chat(plugin.buffer):button1");
+
+/* уклања све тастере са делом "chat(plugin.buffer)" */
+weechat_key_unbind ("mouse", "area:chat(plugin.buffer)");
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def key_unbind(context: str, key: str) -> int: ...
+
+# примери
+
+# уклања једну тастерску пречицу
+weechat.key_unbind("mouse", "@chat(plugin.buffer):button1")
+
+# уклања све тастере са делом "chat(python.test)"
+weechat.key_unbind("mouse", "area:chat(python.test)")
+----
+
+[[display]]
+=== Приказ
+
+Функције које приказују текст у баферима.
+
+==== prefix
+
+Враћа префикс.
+
+Прототип:
+
+[source, C]
+----
+const char *weechat_prefix (const char *prefix);
+----
+
+Аргументи:
+
+* _prefix_: име префикса (погледајте табелу испод)
+
+Повратна вредност:
+
+* вредност префикса (стринг са префиксом и кодовима боја), празан стринг ако се префикс не пронађе
+
+Листа префикса:
+
+[width="100%", cols="^2m,^1,^3,5", options="header"]
+|===
+| Префикс | Вредност | Боја | Опис
+| error | `+=!=+` | yellow | Порука о грешки.
+| network | `+--+` | magenta | Порука са мреже.
+| action | `+*+` | white | Сопствена акција.
+| join | `+-->+` | lightgreen | Неко се придружио текућем разговору.
+| quit | `+<--+` | lightred | Неко напушта текући разговор.
+|===
+
+[NOTE]
+Командом `/set` могу да се прилагоде вредности и боје.
+
+C пример:
+
+[source, C]
+----
+weechat_printf (NULL, "%sОво је грешка...", weechat_prefix ("error"));
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def prefix(prefix: str) -> str: ...
+
+# пример
+weechat.prnt("", "%sОво је грешка..." % weechat.prefix("error"))
+----
+
+==== color
+
+Враћа стринг кода боје за приказ.
+
+Прототип:
+
+[source, C]
+----
+const char *weechat_color (const char *color_name);
+----
+
+Аргументи:
+
+* _color_name_: име боје, једно од::
+** Име опције WeeChat боје (из weechat.color.xxx), на пример _chat_delimiters_
+** име опције (у формату: фајл.одељак.опција), на пример _irc.color.message_quit_ _(WeeChat ≥ 1.2)_
+** боја са необавезним атрибутима/позадином (погледајте испод)
+** атрибут:
+*** _bold_: поставља подебљан испис
+*** _-bold_: уклања подебљан испис
+*** _reverse_: поставља обрнути приказ
+*** _-reverse_: уклања обрнути приказ
+*** _italic_: поставља испис у курзиву
+*** _-italic_: уклања испис у курзиву
+*** _underline_: поставља подвучени испис
+*** _-underline_: уклања подвучени испис
+*** _emphasis_: пребацује активност наглашавања текста (напомена: ово би требало да се користи само у тракама, јер програм WeeChat користи наглашавање текста када претражује текст у баферу) _(WeeChat ≥ 0.4.2)_
+** име боје траке:
+*** _bar_fg_: боја предњег плана траке
+*** _bar_delim_: боја граничника за траку
+*** _bar_bg_: боја позадине за траку
+** ресет:
+*** _reset_: ресетује боје и атрибуте
+*** _resetcolor_: ресетује боју (задржава атрибуте) _(WeeChat ≥ 0.3.6)_
+
+Формат боје је: атрибути (није обавезно) + име боје + ",позадина" (није обавезно). Могући су следећи атрибути:
+
+* `+*+`: подебљани текст
+* `+!+`: обрнути видео
+* `+/+`: курзив
+* `+_+`: подвучен текст
+* `+|+`: задржава атрибуте: када се мења боја, не ресетују се подебљано/обрнуто/курзив/подвучено _(WeeChat ≥ 0.3.6)_
+
+Примери:
+
+* `+yellow+`: жуто
+* `+_green+`: подвучено зелено
+* `+*214+`: подебљано наранџасто
+* `+yellow,red+`: жуто на црвеном
+* `+|cyan+`: цијан (и задржава било које атрибуте постављена раније)
+
+Повратна вредност:
+
+* стринг са кодом боје, или празан стринг ако се боја не пронађе
+
+C пример:
+
+[source, C]
+----
+weechat_printf (NULL, "Color: %sblue %sdefault color %syellow on red",
+ weechat_color ("blue"),
+ weechat_color ("chat"),
+ weechat_color ("yellow,red"));
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def color(color_name: str) -> str: ...
+
+# пример
+weechat.prnt("", "Color: %sblue %sdefault color %syellow on red"
+ % (weechat.color("blue"), weechat.color("chat"), weechat.color("yellow,red")))
+----
+
+==== printf
+
+Приказује поруку у баферу.
+
+Прототип:
+
+[source, C]
+----
+void weechat_printf (struct t_gui_buffer *buffer, const char *message, ...);
+----
+
+Ова функција је пречица за функцију printf_date_tags. Следећа два позива дају потпуно исти резултат:
+
+[source, C]
+----
+weechat_printf (buffer, "message");
+weechat_printf_date_tags (buffer, 0, NULL, "message");
+----
+
+Аргументи:
+
+* _buffer_: показивач на бафер, ако је NULL, порука се приказује у WeeChat баферу
+* _message_: порука која треба да се прикаже
+
+[NOTE]
+Први табулатор у поруци („\t”) се користи за раздвајање префикса од поруке. + Ако ваша порука садржи табове и не желите префикс, онда користите размак, па таб, па онда поруку (погледајте пример испод): ово ће да искључи префикс (размак пре таба се неће приказивати).
+
+[NOTE]
+Ако постоје два таба („\t”) на почетку поруке, време се неће приказивати и порука неће имати поравнање. Уз то, датум у поруци ће се поставити на 0.
+
+C пример:
+
+[source, C]
+----
+weechat_printf (NULL, "Hello on WeeChat buffer");
+weechat_printf (buffer, "Hello on this buffer");
+weechat_printf (buffer, "%sThis is an error!", weechat_prefix ("error"));
+weechat_printf (buffer, " \tMessage without prefix but with \t some \t tabs");
+weechat_printf (buffer, "\t\tMessage without time/alignment");
+weechat_printf (buffer, "\t\t"); /* empty line (without time) */
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def prnt(buffer: str, message: str) -> int: ...
+
+# пример
+weechat.prnt("", "Здраво на WeeChat баферу")
+weechat.prnt(buffer, "Здраво на овом баферу")
+weechat.prnt(buffer, "%sОво је грешка!" % weechat.prefix("error"))
+weechat.prnt(buffer, " \tПорука без префикса, али са \t мало \t табова")
+weechat.prnt(buffer, "\t\tПорука без времена/поравнања")
+weechat.prnt(buffer, "\t\t") # празна линија (без времена)
+----
+
+[NOTE]
+У скриптама се функција зове „print” („prnt” у језику Python).
+
+==== printf_date_tags
+
+Приказује поруку у баферу, уз употребу прилагођеног датума и ознака.
+
+Прототип:
+
+[source, C]
+----
+void weechat_printf_date_tags (struct t_gui_buffer *buffer, time_t date,
+ const char *tags, const char *message, ...);
+----
+
+Аргументи:
+
+* _buffer_: показивач на бафер, ако је NULL, порука се приказује у WeeChat баферу
+* _date_: датум за поруку (0 значи текући датум/време)
+* _tags_: листа ознака раздвојених запетама (NULL значи да нема ознака)
+* _message_: порука која треба да се прикаже
+
+За листу ознака које се уобичјаено користе у програму WeeChat, погледајте link:weechat_user.sr.html#lines_tags[Корисничко упутство / Ознаке линија].
+
+C пример:
+
+[source, C]
+----
+weechat_printf_date_tags (NULL, time (NULL) - 120, "notify_message",
+ "Message 2 minutes ago, with a tag 'notify_message'");
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def prnt_date_tags(buffer: str, date: str, tags: str, message: str) -> int: ...
+
+# пример
+time = int(time.time())
+weechat.prnt_date_tags("", time - 120, "notify_message",
+ "Message 2 minutes ago, with a tag 'notify_message'")
+----
+
+[NOTE]
+Функција се у скриптама зове „print_date_tags” („prnt_date_tags” у језику Python).
+
+==== printf_y
+
+Приказује поруку на линији бафера са слободним садржајем.
+
+Прототип:
+
+[source, C]
+----
+void weechat_printf_y (struct t_gui_buffer *buffer, int y,
+ const char *message, ...);
+----
+
+Аргументи:
+
+* _buffer_: показивач на бафер
+* _y_: број линије (прва линија је 0); негативна вредност додаје линију иза последње приказане линије: апсолутна вредност _y_ је број линија након последње линије (на пример -1 је непосредно након последње линије, -2 је 2 линије након последње линије) _(WeeChat ≥ 1.0)_
+* _message_: порука која треба да се прикаже
+
+C пример:
+
+[source, C]
+----
+weechat_printf_y (buffer, 2, "My message on third line");
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def prnt_y(buffer: str, y: int, message: str) -> int: ...
+
+# пример
+weechat.prnt_y("", 2, "My message on third line")
+----
+
+[NOTE]
+У скриптама се функција зове „print_y” („prnt_y” у језику Python).
+
+==== log_printf
+
+Уписује поруку у WeeChat лог фајл (weechat.log).
+
+Прототип:
+
+[source, C]
+----
+void weechat_log_printf (const char *message, ...);
+----
+
+Аргументи:
+
+* _message_: порука која треба да се упише
+
+C пример:
+
+[source, C]
+----
+weechat_log_printf ("Моја порука у лог фајлу");
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def log_print(message: str) -> int: ...
+
+# пример
+weechat.log_print("Моја порука у лог фајлу")
+----
+
+[NOTE]
+Функција се у скриптама зове „log_print”.
+
+[[hooks]]
+=== Куке
+
+[[hook_priority]]
+[float]
+==== Приоритет куке
+
+_WeeChat ≥ 0.3.4._
+
+У неким кукама можете да поставите приоритет. Кука са вишим приоритетом се налази при почетку листе кука, тако да ће се пронаћи и извршити пре осталих кука. Корисно је за модификаторе, јер је за њих битан редослед извршавања.
+
+Да бисте поставили приоритет, морате да користите следећу синтаксу за аргумент за који је дозвољен приоритет: „nnn|име” где је „nnn” позитиван цео број са приоритетом, а „име” је име аргумента (приоритет се не појављује у имену, он се аутоматски уклања из стринга).
+
+Подразумевани приоритет је 1000.
+
+C пример:
+
+[source, C]
+----
+/* модификатор кука са приоритетом = 2000 */
+weechat_hook_modifier ("2000|input_text_display", &modifier_cb, NULL, NULL);
+----
+
+Приоритет дозвољавају следећи типови кука: command, command_run, signal, hsignal, config, completion, modifier, info, info_hashtable, infolist, hdata, focus.
+
+==== hook_command
+
+_Ажурирано у верзијама 1.5, 1.7._
+
+Качи се на команду.
+
+Прототип:
+
+[source, C]
+----
+struct t_hook *weechat_hook_command (const char *command,
+ const char *description,
+ const char *args,
+ const char *args_description,
+ const char *completion,
+ int (*callback)(const void *pointer,
+ void *data,
+ struct t_gui_buffer *buffer,
+ int argc,
+ char **argv,
+ char **argv_eol),
+ const void *callback_pointer,
+ void *callback_data);
+----
+
+Аргументи:
+
+* _command_: име команде (приоритет је дозвољен, погледајте напомену о <<hook_priority,приоритету>>)
+* _description_: опис команде (приказује се са `/help команда`)
+* _args_: аргументи за команду (приказује се са `/help команда`)
+* _args_description_: опис аргумената (приказује се са `/help команда`)
+* _completion_: шаблон довршавања за команду (погледајте формат испод)
+* _callback_: функција која се позива када се употреби команда, аргументи и повратна вредност су:
+** _const void *pointer_: показивач
+** _void *data_: показивач
+** _struct t_gui_buffer *buffer_: бафер у коме се извршава команда
+** _int argc_: број аргумената дат уз команду
+** _char **argv_: аргументи дати уз команду
+** _char **argv_eol_: аргументи дати за команду (све до краја линије за сваки аргумент)
+** повратна вредност:
+*** _WEECHAT_RC_OK_
+*** _WEECHAT_RC_ERROR_
+* _callback_pointer_: показивач који се прослеђује функцији повратног позива када је позове програм WeeChat
+* _callback_data_: показивач који се прослеђује функцији повратног позива када је позове програм WeeChat; ако није NULL, алоцирала га је malloc (или нека слична функција) и аутоматски се ослобађа када се кука обрише
+
+_completion_ шаблон је листа довршавања за сваки аргумент, раздвојен размацима. За један аргумент је могуће више довршавања која се раздвајају са `+|+`. За исту команду може да постоји више шаблона који се раздвајају са `+||+`.
+
+Формат довршавања може да буде:
+
+* _%(име)_: довршавање _име_
+* _%(име:аргументи)_: довршавање _име_ са _аргументи_ који се шаљу функцији повратног позива _(WeeChat ≥ 1.7)_
+* било који стринг: користи се у довршавању без икаквих измена
+
+На пример, шаблон `list || add %(filters_names) || del %(filters_names)|-all` ће у аргументима команде да довршава са следећим вредностима:
+
+* први аргумент: `list`, `add` и `del`
+* други аргумент, зависно од првог аргумента:
+** `list`: ништа
+** `add`: имена филтера
+** `del`: имена филтера и `-all`
+
+Подразумевани кодови довршавања су:
+
+include::includes/autogen_api_completions.sr.adoc[tag=completions]
+
+Специјални кодови:
+
+* `+%%команда+`: поновна употреба шаблона довршавања из команде _команда_
+* `+%-+`: заустављање довршавања
+* `+%*+`: понављање последњег довршавања
+
+Повратна вредност:
+
+* показивач на нову куку, NULL у случају грешке
+
+C пример:
+
+[source, C]
+----
+int
+my_command_cb (const void *pointer, void *data, struct t_gui_buffer *buffer,
+ int argc, char **argv, char **argv_eol)
+{
+ /* ... */
+ return WEECHAT_RC_OK;
+}
+
+/* овај пример је инспирисан командом /filter */
+struct t_hook *my_command_hook =
+ weechat_hook_command ("мојфилтер",
+ "опис за myfilter",
+ "[list] | [enable|disable|toggle [име]] | "
+ "[add име plugin.buffer tags regex] | "
+ "[del име|-all]",
+ "опис аргумената...",
+ "list"
+ " || enable %(filters_names)"
+ " || disable %(filters_names)"
+ " || toggle %(filters_names)"
+ " || add %(filters_names) %(buffers_plugins_names)|*"
+ " || del %(filters_names)|-all",
+ &my_command_cb, NULL, NULL);
+----
+
+На пример, ако је команда која се позива `/command abc def ghi`, онда _argv_ и _argv_eol_ имају следеће вредности:
+
+* _argv_:
+** _argv[0]_ == "/command"
+** _argv[1]_ == "abc"
+** _argv[2]_ == "def"
+** _argv[3]_ == "ghi"
+* _argv_eol_:
+** _argv_eol[0]_ == "/command abc def ghi"
+** _argv_eol[1]_ == "abc def ghi"
+** _argv_eol[2]_ == "def ghi"
+** _argv_eol[3]_ == "ghi"
+
+У скриптама, _args_ има вредност "abc def ghi".
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def hook_command(command: str, description: str, args: str, args_description: str,
+ completion: str, callback: str, callback_data: str) -> str: ...
+
+# пример
+def my_command_cb(data, buffer, args):
+ # ...
+ return weechat.WEECHAT_RC_OK
+
+hook = weechat.hook_command("мојфилтер", "опис за мојфилтер",
+ "[list] | [enable|disable|toggle [име]] | [add име plugin.buffer tags regex] | [del име|-all]",
+ "опис аргумената...",
+ "list"
+ " || enable %(filters_names)"
+ " || disable %(filters_names)"
+ " || toggle %(filters_names)"
+ " || add %(filters_names) %(buffers_plugins_names)|*"
+ " || del %(filters_names)|-all",
+ "my_command_cb", "")
+----
+
+==== hook_completion
+
+_Ажурирано у верзијама 1.5, 1.7._
+
+Качи се на довршавање.
+
+Прототип:
+
+[source, C]
+----
+struct t_hook *weechat_hook_completion (const char *completion_item,
+ const char *description,
+ int (*callback)(const void *pointer,
+ void *data,
+ const char *completion_item,
+ struct t_gui_buffer *buffer,
+ struct t_gui_completion *completion),
+ const void *callback_pointer,
+ void *callback_data);
+----
+
+Аргументи:
+
+* _completion_item_: име ставке довршавања, након ње у закаченој команди (аргумент _completion_) можете да користите _%(име)_ (или _%(име:аргументи)_ у WeeChat ≥ 1.7) (дозвољава се приоритет, погледајте напомену о <<hook_priority,приоритетима>>)
+* _description_: опис довршавања
+* _callback_: функција се позива када се употреби ставка довршавања (корисник нешто довршава употребом ове ставке), аргументи и повратна вредност су:
+** _const void *pointer_: показивач
+** _void *data_: показивач
+** _const char *completion_item_: име ставке довршавања (у WeeChat ≥ 1.7 може да укључи и аргументе у формату: _име:аргументи_)
+** _struct t_gui_buffer *buffer_: бафер у коме се врши довршавање
+** _struct t_gui_completion *completion_: структура која се користи за додавање речи довршавања (погледајте <<_completion_list_add,completion_list_add>>)
+** повратна вредност:
+*** _WEECHAT_RC_OK_
+*** _WEECHAT_RC_ERROR_
+* _callback_pointer_: показивач који се прослеђује функцији повратног позива када је позове програм WeeChat
+* _callback_data_: показивач који се прослеђује функцији повратног позива када је позове програм WeeChat; ако није NULL, алоцирала га је malloc (или нека слична функција) и аутоматски се ослобађа када се кука обрише
+
+[NOTE]
+Имена довршавања су глобална (програм WeeChat и додаци их заједнички користе). Тако да се препоручује да изаберете име са јединственим префиксом, као што је „plugin_xxx” (где је „xxx” име ваше ставке).
+
+[IMPORTANT]
+Функција повратног позива сме да се позива само функције довршавања као што је <<_completion_list_add,completion_list_add>> и *НЕ* сме да ажурира командну линију. + Да бисте ажурирали командну линију када се притисне kbd:[Tab], употребите функцију <<_hook_command_run,hook_command_run>> са командом: `+/input complete_next+` (а ако ваша функција повратног позива успешно ажурира командну линију, морате да вратите _WEECHAT_RC_OK_EAT_, тако да програм WeeChat не изврши довршавање).
+
+Повратна вредност:
+
+* показивач на нову куку, NULL у случају грешке
+
+C пример:
+
+[source, C]
+----
+int
+my_completion_cb (const void *pointer, void *data, const char *completion_item,
+ struct t_gui_buffer *buffer,
+ struct t_gui_completion *completion)
+{
+ weechat_completion_list_add (completion, "реч1", 0, WEECHAT_LIST_POS_SORT);
+ weechat_completion_list_add (completion, "тест_реч2", 0, WEECHAT_LIST_POS_SORT);
+ return WEECHAT_RC_OK;
+}
+
+struct t_hook *my_completion_hook = weechat_hook_completion ("plugin_ставка",
+ "моје лично довршавање!",
+ &my_completion_cb, NULL, NULL);
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def hook_completion(completion_item: str, description: str, callback: str, callback_data: str) -> str: ...
+
+# пример
+def my_completion_cb(data, completion_item, buffer, completion):
+ weechat.completion_list_add(completion, "реч1", 0, weechat.WEECHAT_LIST_POS_SORT)
+ weechat.completion_list_add(completion, "тест_реч2", 0, weechat.WEECHAT_LIST_POS_SORT)
+ return weechat.WEECHAT_RC_OK
+
+hook = weechat.hook_completion("plugin_ставка", "моје лично довршавање!",
+ "my_completion_cb", "")
+----
+
+==== hook_completion_get_string
+
+_WeeChat ≥ 0.3.4._
+
+*Застарело од WeeChat верзије 2.9* (још увек постоји из разлога компатибилности). +
+Ову функцију је заменила <<_completion_get_string,completion_get_string>>.
+
+==== hook_completion_list_add
+
+*Застарело од WeeChat верзије 2.9* (још увек постоји из разлога компатибилности). +
+Ову функцију је заменила <<_completion_list_add,completion_list_add>>.
+
+==== hook_command_run
+
+_Ажурирано у верзији 1.5._
+
+Закачи се на команду када је програм WeeChat покрене.
+
+Прототип:
+
+[source, C]
+----
+struct t_hook *weechat_hook_command_run (const char *command,
+ int (*callback)(const void *pointer,
+ void *data,
+ struct t_gui_buffer *buffer,
+ const char *command),
+ const void *callback_pointer,
+ void *callback_data);
+----
+
+Аргументи:
+
+* _command_: команда која се качи (дозвољен је џокер `+*+`) (дозвољава се приоритет, погледајте напомену о <<hook_priority,приоритетима>>)
+* _callback_: функција која се позива када се команда покрене, аргументи и повратна вредност су:
+** _const void *pointer_: показивач
+** _void *data_: показивач
+** _struct t_gui_buffer *buffer_: бафер у коме се извршава команда
+** _const char *command_: команда која се извршава, са својим аргументима
+** повратна вредност:
+*** _WEECHAT_RC_OK_
+*** _WEECHAT_RC_OK_EAT_: након функције повратног позива, програм WeeChat неће извршити команду
+*** _WEECHAT_RC_ERROR_
+* _callback_pointer_: показивач који се прослеђује функцији повратног позива када је позове програм WeeChat
+* _callback_data_: показивач који се прослеђује функцији повратног позива када је позове програм WeeChat; ако није NULL, алоцирала га је malloc (или нека слична функција) и аутоматски се ослобађа када се кука обрише
+
+Повратна вредност:
+
+* показивач на нову куку, NULL у случају грешке
+
+C пример:
+
+[source, C]
+----
+int
+my_command_run_cb (const void *pointer, void *data,
+ struct t_gui_buffer *buffer, const char *command)
+{
+ weechat_printf (NULL, "Трошим довршавање!");
+ return WEECHAT_RC_OK_EAT;
+}
+
+struct t_hook *my_command_run_hook =
+ weechat_hook_command_run ("/input complete*",
+ &my_command_run_cb, NULL, NULL);
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def hook_command_run(command: str, callback: str, callback_data: str) -> str: ...
+
+# пример
+def my_command_run_cb(data, buffer, command):
+ weechat.prnt("", "Трошим довршавање!")
+ return weechat.WEECHAT_RC_OK_EAT
+
+hook = weechat.hook_command_run("/input complete*", "my_command_run_cb", "")
+----
+
+==== hook_timer
+
+_Ажурирано у верзији 1.5._
+
+Качи се на тајмер.
+
+Прототип:
+
+[source, C]
+----
+struct t_hook *weechat_hook_timer (long interval,
+ int align_second,
+ int max_calls,
+ int (*callback)(const void *pointer,
+ void *data,
+ int remaining_calls),
+ const void *callback_pointer,
+ void *callback_data);
+----
+
+Аргументи:
+
+* _interval_: интервал између два позива (у милисекундама, па је 1000 = 1 секунда)
+* _align_second_: поравнање на секундама. На пример, ако је текуће време 09:00, а интервал = 60000 (60 секунди) и align_second = 60, онда се тајмер позива сваког минута у 0 секунди
+* _max_calls_: колико пута ће се позвати тајмер (ако је 0, онда тајмер не стаје)
+* _callback_: функција која се позива када се достигне време, аргументи и повратна вредност су:
+** _const void *pointer_: показивач
+** _void *data_: показивач
+** _int remaining_calls_: број преосталих позива (-1 ако тајмер не стаје)
+** повратна вредност:
+*** _WEECHAT_RC_OK_
+*** _WEECHAT_RC_ERROR_
+* _callback_pointer_: показивач који се прослеђује функцији повратног позива када је позове програм WeeChat
+* _callback_data_: показивач који се прослеђује функцији повратног позива када је позове програм WeeChat; ако није NULL, алоцирала га је malloc (или нека слична функција) и аутоматски се ослобађа када се кука обрише
+
+Повратна вредност:
+
+* показивач на нову куку, NULL у случају грешке
+
+C пример:
+
+[source, C]
+----
+int
+my_timer_cb (const void *pointer, void *data, int remaining_calls)
+{
+ /* ... */
+ return WEECHAT_RC_OK;
+}
+
+/* тајмер се позива сваких 20 секунди */
+struct t_hook *my_timer_hook =
+ weechat_hook_timer (20 * 1000, 0, 0, &my_timer_cb, NULL, NULL);
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def hook_timer(interval: int, align_second: int, max_calls: int, callback: str, callback_data: str) -> str: ...
+
+# пример
+def my_timer_cb(data, remaining_calls):
+ # ...
+ return weechat.WEECHAT_RC_OK
+
+# тајмер се позива сваких 20 секунди
+hook = weechat.hook_timer(20 * 1000, 0, 0, "my_timer_cb", "")
+----
+
+==== hook_fd
+
+_Ажурирано у верзијама 1.3, 1.5, 2.0._
+
+Качи се на фајл дескриптор (фајла или сокета).
+
+Прототип:
+
+[source, C]
+----
+struct t_hook *weechat_hook_fd (int fd,
+ int flag_read,
+ int flag_write,
+ int flag_exception,
+ int (*callback)(const void *pointer,
+ void *data,
+ int fd),
+ const void *callback_pointer,
+ void *callback_data);
+----
+
+Аргументи:
+
+* _fd_: фајл дескриптор
+* _flag_read_: 1 = хвата се догађај читања, 0 = игнорише се
+* _flag_write_: 1 = хвата се догађај уписа, 0 = игнорише се
+* _flag_exception_: 1 = хвата се догађај изузетка, 0 = игнорише се (_WeeChat ≥ 1.3_: овај аргумент се игнорише и више се не користи)
+* _callback_: функција која се позива када се за фајл (или сокет) догоди изабрани догађај, аргументи и повратна вредност су:
+** _const void *pointer_: показивач
+** _void *data_: показивач
+** _int fd_: фајл дескриптор
+** повратна вредност:
+*** _WEECHAT_RC_OK_
+*** _WEECHAT_RC_ERROR_
+* _callback_pointer_: показивач који се прослеђује функцији повратног позива када је позове програм WeeChat
+* _callback_data_: показивач који се прослеђује функцији повратног позива када је позове програм WeeChat; ако није NULL, алоцирала га је malloc (или нека слична функција) и аутоматски се ослобађа када се кука обрише
+
+Повратна вредност:
+
+* показивач на нову куку, NULL у случају грешке
+
+[IMPORTANT]
+У скриптама, са програмом WeeChat ≥ 2.0, аргумент функције повратног позива _fd_ је цео број (у WeeChat ≤ 1.9, био је стринг). + Да би постојала компатибилност са свим верзијама, препоручује се да пре употребе конвертујете аргумент у цео број, на пример у језику Python: `int(fd)`.
+
+C пример:
+
+[source, C]
+----
+int
+my_fd_cb (const void *pointer, void *data, int fd)
+{
+ /* ... */
+ return WEECHAT_RC_OK;
+}
+
+int sock = socket (AF_INET, SOCK_STREAM, 0);
+/* set socket options */
+/* ... */
+struct t_hook *my_fd_hook = weechat_hook_fd (sock, 1, 0, 0, &my_fd_cb, NULL, NULL);
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def hook_fd(fd: int, flag_read: int, flag_write: int, flag_exception: int, callback: str, callback_data: str) -> str: ...
+
+# пример
+def my_fd_cb(data, fd):
+ # ...
+ return weechat.WEECHAT_RC_OK
+
+sock = ...
+hook = weechat.hook_fd(sock, 1, 0, 0, "my_fd_cb", "")
+----
+
+==== hook_process
+
+_Ажурирано у верзији 1.5._
+
+Качи се на процес (покренут рачвањем), и хвата његов излаз.
+
+[NOTE]
+Почевши од верзије 0.3.9.2, за извршавање команде се више не користи командно окружење. Програм WeeChat аутоматски раздваја команду и њене аргументе (на исти начин на који то ради командно окружење). + Ако подела није исправна (у зависности од знакова навода у вашој команди), или ако желите да користите командно окружење, употребите функцију <<_hook_process_hashtable,hook_process_hashtable>> са аргументима у хеш табели _options_ _(WeeChat ≥ 0.4.0)_.
+
+Прототип:
+
+[source, C]
+----
+struct t_hook *weechat_hook_process (const char *command,
+ int timeout,
+ int (*callback)(const void *pointer,
+ void *data,
+ const char *command,
+ int return_code,
+ const char *out,
+ const char *err),
+ const void *callback_pointer,
+ void *callback_data);
+----
+
+
+Аргументи:
+
+* _command_: команда која се покреће у дете процесу, URL _(WeeChat ≥ 0.3.7)_ или функција _(WeeChat ≥ 1.5)_ (погледајте испод)
+* _timeout_: тајмаут за команду (у милисекундама): када овај тајмаут истекне, дете процес се убија (0 значи да нема тајмаута)
+* _callback_: функција која се позива када су доступни подаци из дете процеса, или када се дете процес заврши, аргументи и повратна вредност су:
+** _const void *pointer_: показивач
+** _void *data_: показивач
+** _const char *command_: команда коју извршава дете
+** _int return_code_: повратни кôд:
+*** _>= 0_: повратни кôд детета за команду, а за URL су могуће следеће вредности:
+**** _0_: трансфер OK
+**** _1_: неважећи URL
+**** _2_: грешка трансфера
+**** _3_: нема довољно слободне меморије
+**** _4_: грешка са фајлом
+*** _< 0_:
+**** _WEECHAT_HOOK_PROCESS_RUNNING_: подаци су доступни, али се дете још увек извршава)
+**** _WEECHAT_HOOK_PROCESS_ERROR_: грешка приликом покретања команде
+**** _WEECHAT_HOOK_PROCESS_CHILD_: у дете процесу је позвана функција повратног позива
+** _out_: стандардни излаз команде (stdout)
+** _err_: излаз грешака команде (stderr)
+** повратна вредност:
+*** _WEECHAT_RC_OK_
+*** _WEECHAT_RC_ERROR_
+*** повратни кôд дете процеса (у случају функције са „func:” у команди)
+* _callback_pointer_: показивач који се прослеђује функцији повратног позива када је позове програм WeeChat
+* _callback_data_: показивач који се прослеђује функцији повратног позива када је позове програм WeeChat; ако није NULL, алоцирала га је malloc (или нека слична функција) и аутоматски се ослобађа када се кука обрише
+
+Повратна вредност:
+
+* показивач на нову куку, NULL у случају грешке
+
+Када се команда заврши, или ако истекне тајмаут, програм WeeChat ће аутоматски да откачи куку (и убити процес ако се још увек иззвршава).
+
+Команда може да буде URL у следећем формату: „url:https://www.example.com”, за преузимање садржаја URL адресе _(WeeChat ≥ 0.3.7)_. За URL могу да се користе опције функцијом <<_hook_process_hashtable,hook_process_hashtable>>.
+
+Команда такође може да буде и име функције у формату: „func:име”, чиме се извршава функција „име” _(WeeChat ≥ 1.5)_. Ова функција прихвата један аргумент (_data_) и мора да врати стринг, који се прослеђује функцији повратног позива. + У C API, функција повратног позива се позива са повратним кодом постављеним на _WEECHAT_HOOK_PROCESS_CHILD_, што значи да се функција повратног позива извршава у дете процесу (након рачвања). + У API скриптовања, функција _име_ се директно позива и њен резултат (стринг) се прослеђује функцији повратног позива (као и излаз спољне команде.)
+
+[TIP]
+Ако желите да сазнате инфо у вези програма WeeChat (као што је тренутна стабилна верзија, последњи git комит, итд.), можете да употребите URL адресе на страници https://weechat.org/dev/info
+
+[NOTE]
+Величина бафера за слање података је 64KB (постоји 2 бафера: један за stdout и једна за stderr). Ако је излаз из дете процеса (stdout или stderr) дужи од 64KB, функција повратног позива ће се позивати више пута.
+
+[IMPORTANT]
+Чак и ако се у највећем броју случајева ваша функција повратног позива зове само једном, у свом коду морате обезбедити да нема проблема са вишеструким позивањем: морате да спајате податке примљене у више позива и да податке употребљавате само када повратни кôд није негативан.
+
+C пример:
+
+[source, C]
+----
+/* пример са спољном командом */
+int
+my_process_cb (const void *pointer, void *data, const char *command,
+ int return_code, const char *out, const char *err)
+{
+ if (return_code == WEECHAT_HOOK_PROCESS_ERROR)
+ {
+ weechat_printf (NULL, "Грешка у команди ’%s’", command);
+ return WEECHAT_RC_OK;
+ }
+
+ if (return_code >= 0)
+ {
+ weechat_printf (NULL, "return_code = %d", return_code);
+ }
+
+ if (out)
+ {
+ weechat_printf (NULL, "stdout: %s", out);
+ }
+
+ if (err)
+ {
+ weechat_printf (NULL, "stderr: %s", err);
+ }
+
+ return WEECHAT_RC_OK;
+}
+
+struct t_hook *my_process_hook = weechat_hook_process ("ls", 5000,
+ &my_process_cb, NULL, NULL);
+
+/* пример са функцијом повратног позива која се зове у дете процесу */
+int
+my_process_func_cb (const void *pointer, void *data, const char *command,
+ int return_code, const char *out, const char *err)
+{
+ if (return_code == WEECHAT_HOOK_PROCESS_CHILD)
+ {
+ /* одради нешто блокирајуће... */
+ /* ... */
+
+ /* stdout ће се послати као "out" и функцији повратног позива родитеља */
+ printf ("ово је резултат");
+
+ /* повратни кôд процеса */
+ return 0;
+ }
+ else
+ {
+ if (return_code == WEECHAT_HOOK_PROCESS_ERROR)
+ {
+ weechat_printf (NULL, "Грешка у команди ’%s’", command);
+ return WEECHAT_RC_OK;
+ }
+
+ if (return_code >= 0)
+ {
+ weechat_printf (NULL, "return_code = %d", return_code);
+ }
+
+ if (out)
+ {
+ weechat_printf (NULL, "stdout: %s", out);
+ }
+
+ if (err)
+ {
+ weechat_printf (NULL, "stderr: %s", err);
+ }
+
+ return WEECHAT_RC_OK;
+ }
+}
+
+struct t_hook *my_process_hook = weechat_hook_process ("func:get_status", 5000,
+ &my_process_func_cb, NULL, NULL);
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def hook_process(command: str, timeout: int, callback: str, callback_data: str) -> str: ...
+
+# пример са спољном командом
+def my_process_cb(data, command, return_code, out, err):
+ if return_code == weechat.WEECHAT_HOOK_PROCESS_ERROR:
+ weechat.prnt("", "Грешка у команди ’%s’" % command)
+ return weechat.WEECHAT_RC_OK
+ if return_code >= 0:
+ weechat.prnt("", "return_code = %d" % return_code)
+ if out != "":
+ weechat.prnt("", "stdout: %s" % out)
+ if err != "":
+ weechat.prnt("", "stderr: %s" % err)
+ return weechat.WEECHAT_RC_OK
+
+hook = weechat.hook_process("ls", 5000, "my_process_cb", "")
+
+# пример са скрипт функцијом
+def get_status(data):
+ # одради нешто блокирајуће...
+ # ...
+ return "ово је резултат"
+
+def my_process_cb(data, command, return_code, out, err):
+ if return_code == weechat.WEECHAT_HOOK_PROCESS_ERROR:
+ weechat.prnt("", "Грешка у команди ’%s’" % command)
+ return weechat.WEECHAT_RC_OK
+ if return_code >= 0:
+ weechat.prnt("", "return_code = %d" % return_code)
+ if out != "":
+ weechat.prnt("", "stdout: %s" % out)
+ if err != "":
+ weechat.prnt("", "stderr: %s" % err)
+ return weechat.WEECHAT_RC_OK
+
+hook = weechat.hook_process("func:get_status", 5000, "my_process_cb", "")
+----
+
+==== hook_process_hashtable
+
+_WeeChat ≥ 0.3.7, ажурирано у верзији 1.5._
+
+Качи се на процес (покренут рачвањем) користећи опције у хеш табели и хвата излаз.
+
+Прототип:
+
+[source, C]
+----
+struct t_hook *weechat_hook_process_hashtable (const char *command,
+ struct t_hashtable *options,
+ int timeout,
+ int (*callback)(const void *pointer,
+ void *data,
+ const char *command,
+ int return_code,
+ const char *out,
+ const char *err),
+ const void *callback_pointer,
+ void *callback_data);
+----
+
+Аргументи су исти као за функцију <<_hook_process,hook_process>>, уз један додатни аргумент:
+
+* _options_: опције за команду која се извршава; хеш табела се дуплира у функцији, тако да након овог позива безбедно можете да ослободите меморију коју заузима
+
+За стандардну команду (која не почиње са „url:”), можете користите следеће опције:
+
+[width="100%", cols="^1,1,1,4", options="header"]
+|===
+| Опција | Вредност | Подразумевана | Опис
+
+| argN (N ≥ 1) +
+ _(WeeChat ≥ 0.4.0)_ |
+ било који стринг |
+ без аргумената |
+ Аргументи команде; ако се овим опцијама не наведе ниједан аргумент,
+ команда се аутоматски дели на начин на који то ради командно окружење
+ (па се онда аргументи команде учитавају у _command_ аргумент).
+
+| stdin +
+ _(WeeChat ≥ 0.4.3)_ |
+ (не користи се) |
+ без stdin |
+ Креира пајп за упис података на стандардни улаз (stdin) дете процеса
+ (погледајте функцију <<_hook_set,hook_set>>).
+
+| buffer_flush +
+ _(WeeChat ≥ 1.0)_ |
+ број бајтова |
+ 65536 |
+ Минимални број бајтова након којег се испира stdout/stderr (да се излаз
+ пошаље функцији повратног позива), између 1 и 65536. Ако је вредност 1,
+ излаз се тренутно шаље функцији повратног позива.
+
+| detached +
+ _(WeeChat ≥ 1.0)_ |
+ (не користи се) |
+ нема одвајања |
+ Процес се покреће у одвојеном режиму: stdout и stderr се преусмеравају на
+ _/dev/null_.
+|===
+
+За команду „url:...” су доступне следеће опције (за опис сваке опције погледајте `+man curl_easy_setopt+`):
+
+include::includes/autogen_api_url_options.sr.adoc[tag=url_options]
+
+[NOTE]
+^(1)^ За опције типа „mask”, формат је: „вредност1+вредност2+вредност3”; за опције типа „list”, ставке листе морају да се раздвоје преломом линије (`\n`). + ^(2)^ Ако су доступне константе, оне морају да се користе као вредност опције.
+
+За URL су дозвољене две додатне опције (стрингови) за улазни/излазни фајл:
+
+* _file_in_: фајл који се чита и шаље URL адресама (post фајл)
+* _file_out_: преузети URL/фајл се уписује у овај фајл (уместо на стандардни излаз)
+
+Повратна вредност:
+
+* показивач на нову куку, NULL у случају грешке
+
+C пример:
+
+[source, C]
+----
+int
+my_process_cb (const void *pointer, void *data, const char *command,
+ int return_code, const char *out, const char *err)
+{
+ if (return_code == WEECHAT_HOOK_PROCESS_ERROR)
+ {
+ weechat_printf (NULL, "Грешка у команди ’%s’", command);
+ return WEECHAT_RC_OK;
+ }
+
+ if (return_code >= 0)
+ {
+ weechat_printf (NULL, "return_code = %d", return_code);
+ }
+
+ if (out)
+ {
+ weechat_printf (NULL, "stdout: %s", out);
+ }
+
+ if (err)
+ {
+ weechat_printf (NULL, "stderr: %s", err);
+ }
+
+ return WEECHAT_RC_OK;
+}
+
+/* пример 1: преузимање URL */
+struct t_hashtable *options_url1 = weechat_hashtable_new (8,
+ WEECHAT_HASHTABLE_STRING,
+ WEECHAT_HASHTABLE_STRING,
+ NULL,
+ NULL);
+if (options_url1)
+{
+ weechat_hashtable_set (options_url1, "file_out", "/tmp/weechat.org.html");
+ struct t_hook *my_process_hook = weechat_hook_process_hashtable ("url:https://weechat.org/",
+ options_url1,
+ 20000,
+ &my_process_cb, NULL, NULL);
+ weechat_hashtable_free (options_url1);
+}
+
+/* пример 2: отварање URL са прилагођеним HTTP заглављима */
+struct t_hashtable *options_url2 = weechat_hashtable_new (8,
+ WEECHAT_HASHTABLE_STRING,
+ WEECHAT_HASHTABLE_STRING,
+ NULL,
+ NULL);
+if (options_url2)
+{
+ weechat_hashtable_set (options_url2, "httpheader",
+ "Header1: value1\n"
+ "Header2: value2");
+ struct t_hook *my_process_hook = weechat_hook_process_hashtable ("url:http://localhost:8080/",
+ options_url2,
+ 20000,
+ &my_process_cb, NULL, NULL);
+ weechat_hashtable_free (options_url2);
+}
+
+/* пример 3: извршавање обавештавања програма са поруком која је пристигла од некога */
+struct t_hashtable *options_cmd1 = weechat_hashtable_new (8,
+ WEECHAT_HASHTABLE_STRING,
+ WEECHAT_HASHTABLE_STRING,
+ NULL,
+ NULL);
+if (options_cmd1)
+{
+ weechat_hashtable_set (options_cmd1, "arg1", "-from");
+ weechat_hashtable_set (options_cmd1, "arg2", nick);
+ weechat_hashtable_set (options_cmd1, "arg3", "-msg");
+ weechat_hashtable_set (options_cmd1, "arg4", message); /* аргумент којем се не верује */
+ struct t_hook *my_process_hook = weechat_hook_process_hashtable ("my-notify-command",
+ options_cmd1,
+ 20000,
+ &my_process_cb, NULL, NULL);
+ weechat_hashtable_free (options_cmd1);
+}
+
+/* пример 4: позив командног окружења да изврши команду (команда мора бити БЕЗБЕДНА) */
+struct t_hashtable *options_cmd2 = weechat_hashtable_new (8,
+ WEECHAT_HASHTABLE_STRING,
+ WEECHAT_HASHTABLE_STRING,
+ NULL,
+ NULL);
+if (options_cmd2)
+{
+ weechat_hashtable_set (options_cmd2, "arg1", "-c");
+ weechat_hashtable_set (options_cmd2, "arg2", "ls -l /tmp | grep something");
+ struct t_hook *my_process_hook = weechat_hook_process_hashtable ("sh",
+ options_cmd2,
+ 20000,
+ &my_process_cb, NULL, NULL);
+ weechat_hashtable_free (options_cmd2);
+}
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def hook_process_hashtable(command: str, options: Dict[str, str], timeout: int, callback: str, callback_data: str) -> str: ...
+
+# пример
+def my_process_cb(data, command, return_code, out, err):
+ if return_code == weechat.WEECHAT_HOOK_PROCESS_ERROR:
+ weechat.prnt("", "Грешка у команди ’%s’" % command)
+ return weechat.WEECHAT_RC_OK
+ if return_code >= 0:
+ weechat.prnt("", "return_code = %d" % return_code)
+ if out != "":
+ weechat.prnt("", "stdout: %s" % out)
+ if err != "":
+ weechat.prnt("", "stderr: %s" % err)
+ return weechat.WEECHAT_RC_OK
+
+# пример 1: преузимање URL
+hook1 = weechat.hook_process_hashtable("url:https://weechat.org/",
+ {"file_out": "/tmp/weechat.org.html"},
+ 20000, "my_process_cb", "")
+
+# пример 2: отварање URL са прилагођеним HTTP заглављима
+options = {
+ "httpheader": "\n".join([
+ "Header1: value1",
+ "Header2: value2",
+ ]),
+}
+hook2 = weechat.hook_process_hashtable("url:http://localhost:8080/",
+ options,
+ 20000, "my_process_cb", "")
+
+# пример 3: извршавање обавештавања програма са поруком која је пристигла од некога
+hook3 = weechat.hook_process_hashtable("my-notify-command",
+ {"arg1": "-from",
+ "arg2": nick,
+ "arg3": "-msg",
+ "arg4": message}, # аргумент којем се не верује
+ 20000, "my_process_cb", "")
+
+# пример 4: позив командног окружења да изврши команду (команда мора бити БЕЗБЕДНА)
+hook4 = weechat.hook_process_hashtable("sh",
+ {"arg1": "-c",
+ "arg2": "ls -l /tmp | grep something"},
+ 20000, "my_process_cb", "")
+----
+
+==== hook_connect
+
+_Ажурирано у верзијама 1.5, 2.0._
+
+Качи се на везу (везу у позадини са удаљеним хостом).
+
+Прототип:
+
+[source, C]
+----
+struct t_hook *weechat_hook_connect (const char *proxy,
+ const char *address,
+ int port,
+ int ipv6,
+ int retry,
+ void *gnutls_sess,
+ void *gnutls_cb,
+ int gnutls_dhkey_size,
+ const char *gnutls_priorities,
+ const char *local_hostname,
+ int (*callback)(const void *pointer,
+ void *data,
+ int status,
+ int gnutls_rc,
+ int sock,
+ const char *error,
+ const char *ip_address),
+ const void *callback_pointer,
+ void *callback_data);
+----
+
+Аргументи:
+
+* _proxy_: име проксија који се користи за везу (није обавезно, NULL значи да је веза без проксија)
+* _address_: име или IP адреса са којом се повезује
+* _port_: број порта
+* _ipv6_: 1 да се користи IPv6 (или IPv4 у случају да не може), 0 да се користи само IPv4
+* _retry_: број поновних покушаја, користи се за прелаз на IPv4 хостове ако се IPv6 хостови успостављају везу али онда не прихватају клијента
+* _gnutls_sess_: GnuTLS сесија (није обавезна)
+* _gnutls_cb_: GnuTLS функција повратног позива (није обавезна)
+* _gnutls_dhkey_size_: величина кључа који се користи током Дифи-Хелман размене кључева (GnuTLS)
+* _gnutls_priorities_: приоритети за gnutls (у вези синтаксе, погледајте документацију функције _gnutls_priority_init_ у gnutls упутству), основне вредности су следеће:
+** _PERFORMANCE_
+** _NORMAL_ (подразумевано)
+** _SECURE128_
+** _SECURE256_
+** _EXPORT_
+** _NONE_
+* _local_hostname_: име локалног хоста које ће се користити за везу (није обавезно)
+* _callback_: функција која се позива када је веза OK или не успе да се успостави, аргументи и повратна вредност су:
+** _const void *pointer_: показивач
+** _void *data_: показивач
+** _int status_: статус везе:
+*** _WEECHAT_HOOK_CONNECT_OK_: веза је OK
+*** _WEECHAT_HOOK_CONNECT_ADDRESS_NOT_FOUND_: адреса није пронађена
+*** _WEECHAT_HOOK_CONNECT_IP_ADDRESS_NOT_FOUND_: IP адреса није пронађена
+*** _WEECHAT_HOOK_CONNECT_CONNECTION_REFUSED_: повезивање је одбијено
+*** _WEECHAT_HOOK_CONNECT_PROXY_ERROR_: грешка са проксијем
+*** _WEECHAT_HOOK_CONNECT_LOCAL_HOSTNAME_ERROR_: грешка са именом локалног хоста
+*** _WEECHAT_HOOK_CONNECT_GNUTLS_INIT_ERROR_: GnuTLS init грешка
+*** _WEECHAT_HOOK_CONNECT_GNUTLS_HANDSHAKE_ERROR_: грешка код GnuTLS руковања
+*** _WEECHAT_HOOK_CONNECT_MEMORY_ERROR_: нема довољно слободне меморије
+*** _WEECHAT_HOOK_CONNECT_TIMEOUT_: тајмаут
+*** _WEECHAT_HOOK_CONNECT_SOCKET_ERROR_: сокет није могао да се креира
+** _gnutls_rc_: повратна вредност функције _gnutls_handshake()_
+** _sock_: сокет који се употребљен за везу
+** _const char *error_: повратна вредност _gnutls_strerror(gnutls_rc)_
+** _const char *ip_address_: IP адреса није нађена
+** повратна вредност:
+*** _WEECHAT_RC_OK_
+*** _WEECHAT_RC_ERROR_
+* _callback_pointer_: показивач који се прослеђује функцији повратног позива када је позове програм WeeChat
+* _callback_data_: показивач који се прослеђује функцији повратног позива када је позове програм WeeChat; ако није NULL, алоцирала га је malloc (или нека слична функција) и аутоматски се ослобађа када се кука обрише
+
+Повратна вредност:
+
+* показивач на нову куку, NULL у случају грешке
+
+[IMPORTANT]
+У скриптама и програмом WeeChat ≥ 2.0, аргументи функције повратног позива _status_, _gnutls_rc_ и _sock_ су цели бројеви (у програму WeeChat ≤ 1.9, били су стрингови). + Да би се одржала компатибилност са свим верзијама, препоручује се да аргумент пре употребе конвертујете у цео број, на пример у језику Python: `int(sock)`.
+
+C пример:
+
+[source, C]
+----
+int
+my_connect_cb (const void *pointer, void *data, int status, int gnutls_rc,
+ int sock, const char *error, const char *ip_address)
+{
+ switch (status)
+ {
+ case WEECHAT_HOOK_CONNECT_OK:
+ /* ... */
+ break;
+ case WEECHAT_HOOK_CONNECT_ADDRESS_NOT_FOUND:
+ /* ... */
+ break;
+ case WEECHAT_HOOK_CONNECT_IP_ADDRESS_NOT_FOUND:
+ /* ... */
+ break;
+ case WEECHAT_HOOK_CONNECT_CONNECTION_REFUSED:
+ /* ... */
+ break;
+ case WEECHAT_HOOK_CONNECT_PROXY_ERROR:
+ /* ... */
+ break;
+ case WEECHAT_HOOK_CONNECT_LOCAL_HOSTNAME_ERROR:
+ /* ... */
+ break;
+ case WEECHAT_HOOK_CONNECT_GNUTLS_INIT_ERROR:
+ /* ... */
+ break;
+ case WEECHAT_HOOK_CONNECT_GNUTLS_HANDSHAKE_ERROR:
+ /* ... */
+ break;
+ case WEECHAT_HOOK_CONNECT_MEMORY_ERROR:
+ /* ... */
+ break;
+ case WEECHAT_HOOK_CONNECT_TIMEOUT:
+ /* ... */
+ break;
+ case WEECHAT_HOOK_CONNECT_SOCKET_ERROR:
+ /* ... */
+ break;
+ }
+ return WEECHAT_RC_OK;
+}
+
+struct t_hook *my_connect_hook = weechat_hook_connect (NULL,
+ "my.server.org", 1234,
+ 1, 0,
+ NULL, NULL, 0, /* GnuTLS */
+ NULL,
+ &my_connect_cb, NULL, NULL);
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def hook_connect(proxy: str, address: str, port: int, ipv6: int, retry: int, local_hostname: str,
+ callback: str, callback_data: str) -> str: ...
+
+# пример
+def my_connect_cb(data, status, gnutls_rc, sock, error, ip_address):
+ if status == WEECHAT_HOOK_CONNECT_OK:
+ # ...
+ elif status == WEECHAT_HOOK_CONNECT_ADDRESS_NOT_FOUND:
+ # ...
+ elif status == WEECHAT_HOOK_CONNECT_IP_ADDRESS_NOT_FOUND:
+ # ...
+ elif status == WEECHAT_HOOK_CONNECT_CONNECTION_REFUSED:
+ # ...
+ elif status == WEECHAT_HOOK_CONNECT_PROXY_ERROR:
+ # ...
+ elif status == WEECHAT_HOOK_CONNECT_LOCAL_HOSTNAME_ERROR:
+ # ...
+ elif status == WEECHAT_HOOK_CONNECT_GNUTLS_INIT_ERROR:
+ # ...
+ elif status == WEECHAT_HOOK_CONNECT_GNUTLS_HANDSHAKE_ERROR:
+ # ...
+ elif status == WEECHAT_HOOK_CONNECT_MEMORY_ERROR:
+ # ...
+ elif status == WEECHAT_HOOK_CONNECT_TIMEOUT:
+ # ...
+ elif status == WEECHAT_HOOK_CONNECT_SOCKET_ERROR:
+ # ...
+ return weechat.WEECHAT_RC_OK
+
+hook = weechat.hook_connect("", "my.server.org", 1234, 1, 0, "",
+ "my_connect_cb", "")
+----
+
+==== hook_line
+
+_WeeChat ≥ 2.3._
+
+Качи се на линију која треба да се испише у бафер.
+
+Када линија треба да се испише у бафер, куке се позивају у следећем редоследу:
+
+* <<_hook_line,кука линије>> (ова кука): може да промени бафер, префикс, поруку, ознаке, ниво обавештавања, … (погледајте испод)
+* <<_hook_modifier,кука модификатора>> „<<hook_modifier_weechat_print,weechat_print>>”: може да промени префикс и поруку у баферу са форматираним садржајем.
+* <<_hook_print,кука исписа>>: позива се када се у бафер са форматираним садржајем дода линија (овом куком ништа директно не може да се измени).
+
+[NOTE]
+„line” (кука линије) је једина од ове три куке која може да ради над баферима са слободним садржајем.
+
+Прототип:
+
+[source, C]
+----
+struct t_hook *weechat_hook_line (const char *buffer_type,
+ const char *buffer_name,
+ const char *tags,
+ struct t_hashtable *(*callback)(const void *pointer,
+ void *data,
+ struct t_hashtable *line),
+ const void *callback_pointer,
+ void *callback_data);
+----
+
+Аргументи:
+
+* _buffer_type_: хвата линије у наведеном типу бафера (ако је NULL или празан стринг, подразумева се _formatted_):
+** _formatted_: хвата линије само у форматираним баферима (подразумевано)
+** _free_: хвата линије само у баферима са слободним садржајем
+** _*_: хвата линије у баферима свих типова
+* _buffer_name_: листа маски бафера раздвојених запетама (погледајте <<_buffer_match_list,buffer_match_list>>); NULL, празан стринг или „*” се подудара са било којим бафером
+* _tags_: хвата само поруке које имају наведене ознаке (није обавезно): листа ознака раздвојених запетама
+ које морају да се налазе у поруци (логичко „или”); можете да комбинујете више ознака у релацији логичко „и” граничником `+++`; у ознакама је дозвољена употреба џокера `+*+`
+* _callback_: функција која се позива када се линија дода у бафер, аргументи и повратна вредност су:
+** _const void *pointer_: показивач
+** _void *data_: показивач
+** _struct t_hashtable *line_: хеш табела са инфо о линији, кључеви и вредности су стрингови (погледајте табелу испод)
+** return value: хеш табела са новим вредностима (погледајте табелу испод)
+* _callback_pointer_: показивач који се прослеђује функцији повратног позива када је позове програм WeeChat
+* _callback_data_: показивач који се прослеђује функцији повратног позива када је позове програм WeeChat; ако није NULL, алоцирала га је malloc (или нека слична функција) и аутоматски се ослобађа када се кука обрише
+
+Повратна вредност:
+
+* показивач на нову куку, NULL у случају грешке
+
+Подаци линије се прослеђују функцији повратног позива у хеш табели која има следеће вредности (кључеви и вредности су стрингови):
+
+[width="100%", cols="^1,3,3,2", options="header"]
+|===
+| Кључ | Вредност (форматирани бафер) | Вредност (слободни бафер) | Примери
+
+| buffer |
+ Показивач на бафер. |
+ Показивач на бафер. |
+ `+0x1234abcd+`
+
+| buffer_name |
+ Име бафера. |
+ Име бафера. |
+ `+core.weechat+` +
+ `+irc.server.libera+` +
+ `+irc.libera.#weechat+`
+
+| buffer_type |
+ "formatted" |
+ "free" |
+ `+formatted+` +
+ `+free+`
+
+| y |
+ Нема ("-1"). |
+ Број линије (≥ "0"). |
+ `+-1+` +
+ `+8+`
+
+| date |
+ Датум линије (временска ознака). |
+ Нема ("0"). |
+ `+1533792000+`
+
+| date_printed |
+ Датум када је линија била приказана (временска ознака). |
+ Нема ("0"). |
+ `+1533792012+`
+
+| str_time |
+ Датум за приказ (са могућим кодовима боја у себи). |
+ Нема (празан стринг). |
+ `+09:07:20+`
+
+| tags_count |
+ Број ознака у линији (≥ "0"). |
+ Нема ("0"). |
+ `+2+`
+
+| tags |
+ Листа ознака раздвојених запетама. |
+ Нема (празан стринг). |
+ `+irc_join,nick_test+`
+
+| displayed |
+ "0" = линија је филтрирана (скривена је) +
+ "1" = линија није филтрирана (приказана је). |
+ "0" = линија је филтрирана (скривена је) +
+ "1" = линија није филтрирана (приказана је). |
+ `+0+` +
+ `+1+`
+
+| notify_level |
+ "-1" = без обавештавања +
+ "0" = низак ниво +
+ "1" = порука +
+ "2" = приватна порука +
+ "3" = истицање |
+ Нема ("0"). |
+ `+2+`
+
+| highlight |
+ "0" = без истицања +
+ "1" = линија има истицање. |
+ Нема ("0"). |
+ `+0+` +
+ `+1+`
+
+| prefix |
+ Префикс линије. |
+ Нема (празан стринг). |
+ `+-->+`
+
+| message |
+ Порука у линији. |
+ Порука у линији. |
+ `+test (~test@example.com) је приступио у #channel+`
+|===
+
+Функција повратног позива може да врати хеш табелу са неким измењеним пољима како би се линија ажурирала. Програм WeeChat било коју неважећу вредност у пољу игнорише без упозорења.
+
+У хеш табелу могу да се поставе следећи кључеви (кључеви и вредности у овој хеш табели су стрингови):
+
+[width="100%", cols="^1,2,2,5", options="header"]
+|===
+| Кључ | Дозвољена вредност (форматирани бафер) | Дозвољена вредност (слободни бафер) | Резултат
+
+| buffer |
+ Показивач на бафер са форматираним садржајем. |
+ Показивач на бафер са слободним садржајем. |
+ Линија се приказује у овом баферу. +
+ Ако је вредност празна, линија се брише (тада се све остало у хеш табели
+ игнорише); наредне куке типа „line” се не позивају.
+
+| buffer_name |
+ Име бафера са форматираним садржајем. |
+ Име бафера са слободним садржајем. |
+ Линија се приказује у овом баферу. +
+ Ако је и `buffer` постављено, вредност `+buffer_name+` има виши приоритет и она се користи. +
+ Ако је вредност празна, линија се брише (тада се све остало у хеш табели
+ игнорише); наредне куке типа „line” се не позивају.
+
+| y |
+ Нема. |
+ Цео број (≥ „0”). |
+ Број линије се поставља на ову вредност.
+
+| date |
+ Временска ознака. |
+ Нема. |
+ Датум се поставља на ову вредност. +
+ Сагласно овоме се поставља и вредност `+str_time+`.
+
+| date_printed |
+ Временска ознака. |
+ Нема. |
+ Датум се поставља на ову временску ознаку (не приказује се).
+
+| str_time |
+ Стринг. |
+ Нема. |
+ Овај стринг се користи за приказ датума линије. +
+ Ако је и `date` постављено, вредност `+str_time+` има виши приоритет и она се користи.
+
+| tags |
+ Стринг. |
+ Нема. |
+ Ознаке линије се замењују овом листом ознака раздвојених запетама. +
+ Сагласно њој се ажурирају `+notify_level+` и `highlight`.
+
+| notify_level |
+ Цео број („-1” до „3”). |
+ Нема. |
+ Ниво обавештавања се поставља на ову вредност. Када се линија дода у бафер,
+ сагласно овој вредности се ажурира врућа листа. +
+ Вредност `highlight` се ажурира сагласно са овом вредности. +
+ Ако је и `tags` постављено, вредност `+notify_level+` има виши приоритет и она се користи.
+
+| highlight |
+ Цео број („0” или „1”). |
+ Нема. |
+ „0” искључује истицање у линији, „1” форсира истицање у линији. +
+ Ако су постављени `tags` или `+notify_level+`, вредност `highlight` има виши
+ приоритет и она се користи.
+
+| prefix |
+ Стринг. |
+ N/A. |
+ Префикс линије се поставља на ову вредност.
+
+| message |
+ Стринг. |
+ Стринг. |
+ Порука линије се поставља на ову вредност.
+|===
+
+C пример:
+
+[source, C]
+----
+int
+my_line_cb (const void *pointer, void *data, struct t_hasbtable *line)
+{
+ struct t_hashtable *hashtable;
+
+ hashtable = weechat_hashtable_new (8,
+ WEECHAT_HASHTABLE_STRING,
+ WEECHAT_HASHTABLE_STRING,
+ NULL,
+ NULL);
+ /* force a highlight on the line */
+ weechat_hashtable_set (hashtable, "highlight", "1");
+ return hashtable;
+}
+
+/* хвата линије са ознаком „irc_join” */
+struct t_hook *my_line_hook =
+ weechat_hook_line ("", "", "irc_join", &my_line_cb, NULL, NULL);
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def hook_line(buffer_type: str, buffer_name: str, tags: str, callback: str, callback_data: str) -> str: ...
+
+# пример
+def my_line_cb(data, line):
+ # force a highlight on the line
+ return {"highlight": "1"}
+
+# хвата линије са ознаком „irc_join”
+hook = weechat.hook_line("", "", "irc_join", "my_line_cb", "")
+----
+
+==== hook_print
+
+_Ажурирано у верзијама 0.4.3, 1.0, 1.5._
+
+Качи се на поруку која се исписује. Позива се када се у бафер са форматираним садржајем дода линија.
+
+За више информација о кукама које се позивају када се линија исписује, погледајте <<_hook_line,hook_line>>.
+
+Прототип:
+
+[source, C]
+----
+struct t_hook *weechat_hook_print (struct t_gui_buffer *buffer,
+ const char *tags,
+ const char *message,
+ int strip_colors,
+ int (*callback)(const void *pointer,
+ void *data,
+ struct t_gui_buffer *buffer,
+ time_t date,
+ int tags_count,
+ const char **tags,
+ int displayed,
+ int highlight,
+ const char *prefix,
+ const char *message),
+ const void *callback_pointer,
+ void *callback_data);
+----
+
+Аргументи:
+
+* _buffer_: показивач на бафер, ако је NULL, хватају се поруке из било ког бафера
+* _tags_: хватају се само поруке са наведеним ознакама (није обавезно):
+** у WeeChat ≥ 0.4.3: листа ознака раздвојених запетама које морају да се налазе у поруци (логичко „или”); више ознака могу да се комбинују у релацији логичко „и” граничником `+++`; у ознакама је дозвољен џокер `+*+`
+** у WeeChat ≤ 0.4.2: листа ознака раздвојених запетама које морају све да се налазе у поруци (логичко „и”)
+* _message_: хватају се само поруке са овим стрингом (није обавезно, не прави се разлика у величини слова)
+* _strip_colors_: ако је 1, пре позива функције повратног позива, из поруке се уклањају боје
+* _callback_: функција која се позива када се порука исписује, аргументи и повратна вредност су:
+** _const void *pointer_: показивач
+** _void *data_: показивач
+** _struct t_gui_buffer *buffer_: показивач на бафер
+** _time_t date_: датум
+** _int tags_count_: број ознака за линију
+** _const char **tags_: низ са ознакама за линију
+** _int displayed_: 1 ако се линија приказује, 0 ако је филтрирана (скривена)
+** _int highlight_: 1 ако линија има истицање, у супротном 0
+** _const char *prefix_: префикс
+** _const char *message_: порука
+** повратна вредност:
+*** _WEECHAT_RC_OK_
+*** _WEECHAT_RC_ERROR_
+* _callback_pointer_: показивач који се прослеђује функцији повратног позива када је позове програм WeeChat
+* _callback_data_: показивач који се прослеђује функцији повратног позива када је позове програм WeeChat; ако није NULL, алоцирала га је malloc (или нека слична функција) и аутоматски се ослобађа када се кука обрише
+
+Повратна вредност:
+
+* показивач на нову куку, NULL у случају грешке
+
+[IMPORTANT]
+У скриптама, са програмом WeeChat ≥ 1.0, аргументи функције повратног позива _displayed_ и _highlight_ су цели бројеви (у WeeChat ≤ 0.4.3, били су стрингови). + Да би се обезбедила компатибилност са свим верзијама, препоручује се да пре употребе аргумент конвертујете у цео број, на пример у језику Python: `if int(highlight):`.
+
+C пример:
+
+[source, C]
+----
+int
+my_print_cb (const void *pointer, void *data, struct t_gui_buffer *buffer,
+ time_t date, int tags_count, const char **tags,
+ int displayed, int highlight,
+ const char *prefix, const char *message)
+{
+ /* ... */
+ return WEECHAT_RC_OK;
+}
+
+/* хвата све поруке у свим баферима, без боје */
+struct t_hook *my_print_hook =
+ weechat_hook_print (NULL, NULL, NULL, 1, &my_print_cb, NULL, NULL);
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def hook_print(buffer: str, tags: str, message: str, strip_colors: int, callback: str, callback_data: str) -> str: ...
+
+# пример
+def my_print_cb(data, buffer, date, tags, displayed, highlight, prefix, message):
+ if int(highlight):
+ # ...
+ return weechat.WEECHAT_RC_OK
+
+# хвата све поруке у свим баферима, без боје
+hook = weechat.hook_print("", "", "", 1, "my_print_cb", "")
+----
+
+==== hook_signal
+
+_Ажурирано у верзији 1.5._
+
+Качи се на сигнал.
+
+Прототип:
+
+[source, C]
+----
+struct t_hook *weechat_hook_signal (const char *signal,
+ int (*callback)(const void *pointer,
+ void *data,
+ const char *signal,
+ const char *type_data,
+ void *signal_data),
+ const void *callback_pointer,
+ void *callback_data);
+----
+
+Аргументи:
+
+* _signal_: сигнал који се хвата, дозвољава се џокер `+*+` (дозвољен је приоритет, погледајте напомену о <<hook_priority,приоритетима>>) (погледајте табелу испод)
+* _callback_: функција која се позива када се прими сигнал, аргументи и повратна вредност су:
+** _const void *pointer_: показивач
+** _void *data_: показивач
+** _const char *signal_: примљени сигнал
+** _const char *type_data_: туп података који су послати уз сигнал:
+*** _WEECHAT_HOOK_SIGNAL_STRING_: стринг
+*** _WEECHAT_HOOK_SIGNAL_INT_: цео број
+*** _WEECHAT_HOOK_SIGNAL_POINTER_: показивач
+** _void *signal_data_: подаци послати уз сигнал
+** повратна вредност:
+*** _WEECHAT_RC_OK_
+*** _WEECHAT_RC_OK_EAT_ (тренутно прекида слање сигнала) _(WeeChat ≥ 0.4.0)_
+*** _WEECHAT_RC_ERROR_
+* _callback_pointer_: показивач који се прослеђује функцији повратног позива када је позове програм WeeChat
+* _callback_data_: показивач који се прослеђује функцији повратног позива када је позове програм WeeChat; ако није NULL, алоцирала га је malloc (или нека слична функција) и аутоматски се ослобађа када се кука обрише
+
+Повратна вредност:
+
+* показивач на нову куку, NULL у случају грешке
+
+Листа сигнала који шаљу програм WeeChat и додаци:
+
+[width="100%", cols="^1,^3,4,5", options="header"]
+|===
+| Додатак | Сигнал | Аргументи | Опис
+
+| guile |
+ [[hook_signal_guile_script_loaded]] guile_script_loaded +
+ _(WeeChat ≥ 0.3.9)_ |
+ Стринг: путања до скрипте. |
+ Учитана је Scheme скрипта.
+
+| guile |
+ [[hook_signal_guile_script_unloaded]] guile_script_unloaded +
+ _(WeeChat ≥ 0.3.9)_ |
+ Стринг: путања до скрипте. |
+ Scheme скрипта је уклоњена из меморије.
+
+| guile |
+ [[hook_signal_guile_script_installed]] guile_script_installed +
+ _(WeeChat ≥ 0.3.9)_ |
+ Стринг: листа путања инсталираних скрипти раздвојених запетама. |
+ Инсталиран(а/е) Scheme скрипт(а/е).
+
+| guile |
+ [[hook_signal_guile_script_removed]] guile_script_removed +
+ _(WeeChat ≥ 0.3.9)_ |
+ Стринг: листа уклоњених скрипти раздвојених запетама. |
+ Уклоњен(а/е) Scheme скрипт(а/е).
+
+| irc |
+ [[hook_signal_xxx_irc_in_yyy]] xxx,irc_in_yyy ^(1)^ |
+ Стринг: порука. |
+ IRC порука од сервера (пре него што је употреби irc додатак,
+ сигнал се шаље само ако се порука *не* игнорише). +
+ Почевши од верзије 2.2, шаље се комплетна IRC порука, заједно са ознакама.
+
+| irc |
+ [[hook_signal_xxx_irc_in2_yyy]] xxx,irc_in2_yyy ^(1)^ |
+ Стринг: порука. |
+ IRC порука од сервера (након што је употреби irc додатак,
+ сигнал се шаље само ако се порука *не* игнорише). +
+ Почевши од верзије 2.2, шаље се комплетна IRC порука, заједно са ознакама.
+
+| irc |
+ [[hook_signal_xxx_irc_raw_in_yyy]] xxx,irc_raw_in_yyy ^(1)^ +
+ _(WeeChat ≥ 0.3.2)_ |
+ Стринг: порука. |
+ IRC порука од сервера (пре него што је употреби irc додатак,
+ сигнал се шаље чак и када се порука игнорише). +
+ Почевши од верзије 2.2, шаље се комплетна IRC порука, заједно са ознакама.
+
+| irc |
+ [[hook_signal_xxx_irc_raw_in2_yyy]] xxx,irc_raw_in2_yyy ^(1)^ +
+ _(WeeChat ≥ 0.3.2)_ |
+ Стринг: порука. |
+ IRC порука од сервера (након што је употреби irc додатак,
+ сигнал се шаље чак и када се порука игнорише). +
+ Почевши од верзије 2.2, шаље се комплетна IRC порука, заједно са ознакама.
+
+| irc |
+ [[hook_signal_xxx_irc_out1_yyy]] xxx,irc_out1_yyy ^(1)^ +
+ _(WeeChat ≥ 0.3.7)_ |
+ Стринг: порука. |
+ IRC порука која се шаље серверу пре аутоматске поделе
+ (да стане у 512 бајтова, подразумевано).
+
+| irc |
+ [[hook_signal_xxx_irc_out_yyy]] xxx,irc_out_yyy ^(1)^ |
+ Стринг: порука. |
+ IRC порука која се шаље серверу након аутоматске поделе
+ (да стане у 512 бајтова, подразумевано).
+ *Упозорење:* стринг може да садржи неважеће UTF-8 податке.
+ Уместо овог, препоручује се употреба сигнала „xxx,irc_out1_yyy”.
+
+| irc |
+ [[hook_signal_xxx_irc_outtags_yyy]] xxx,irc_outtags_yyy ^(1)^ +
+ _(WeeChat ≥ 0.3.4)_ |
+ Стринг: ознаке + „;” + порука. |
+ Ознаке + IRC порука која се шаље серверу. +
+ *Упозорење:* стринг може да садржи неважеће UTF-8 податке.
+ Уместо овог, препоручује се употреба сигнала „xxx,irc_out1_yyy”.
+
+| irc |
+ [[hook_signal_irc_ctcp]] irc_ctcp |
+ Стринг: порука. |
+ Примљена је CTCP.
+
+| irc |
+ [[hook_signal_irc_dcc]] irc_dcc |
+ Стринг: порука. |
+ Нови DCC.
+
+| irc |
+ [[hook_signal_irc_pv]] irc_pv |
+ Стринг: порука. |
+ Примљена је приватна порука.
+
+| irc |
+ [[hook_signal_irc_channel_opened]] irc_channel_opened |
+ Показивач: бафер. |
+ Отворен је канал.
+
+| irc |
+ [[hook_signal_irc_pv_opened]] irc_pv_opened |
+ Показивач: бафер. |
+ Отворен је приватни бафер.
+
+| irc |
+ [[hook_signal_irc_server_opened]] irc_server_opened +
+ _(WeeChat ≥ 0.3.7)_ |
+ Показивач: бафер. |
+ Отворен је серверски бафер.
+
+| irc |
+ [[hook_signal_irc_server_connecting]] irc_server_connecting |
+ Стринг: име сервера. |
+ Повезивање са сервером.
+
+| irc |
+ [[hook_signal_irc_server_connected]] irc_server_connected |
+ Стринг: име сервера. |
+ Успостављена је веза са сервером.
+
+| irc |
+ [[hook_signal_irc_server_disconnected]] irc_server_disconnected |
+ Стринг: име сервера. |
+ Прекинута је веза са сервером.
+
+| irc |
+ [[hook_signal_irc_server_lag_changed]] irc_server_lag_changed +
+ _(WeeChat ≥ 1.8)_ |
+ Стринг: име сервера. |
+ Променило се кашњење у комуникацији са сервером.
+
+| irc |
+ [[hook_signal_irc_ignore_removing]] irc_ignore_removing |
+ Показивач: игнорисање. |
+ Уклања се игнорисање.
+
+| irc |
+ [[hook_signal_irc_ignore_removed]] irc_ignore_removed |
+ - |
+Уклоњено је игнорисање.
+
+| irc |
+ [[hook_signal_irc_notify_join]] irc_notify_join +
+ _(WeeChat ≥ 0.3.8)_ |
+ Стринг: име сервера + „,” + надимак. |
+ Надимак из листе обавештавања се прикључио серверу.
+
+| irc |
+ [[hook_signal_irc_notify_quit]] irc_notify_quit +
+ _(WeeChat ≥ 0.3.8)_ |
+ Стринг: име сервера + „,” + надимак. |
+ Надимак из листе обавештавања је напустио сервер.
+
+| irc |
+ [[hook_signal_irc_notify_away]] irc_notify_away +
+ _(WeeChat ≥ 0.3.8)_ |
+ Стринг: име сервера + „,” + надимак + „,” + порука о одсутности. |
+ Надимак из листе обавештавања је сада одсутан са сервера.
+
+| irc |
+ [[hook_signal_irc_notify_still_away]] irc_notify_still_away +
+ _(WeeChat ≥ 0.3.8)_ |
+ Стринг: име сервера + „,” + надимак + „,” + порука о одсутности. |
+ Надимак из листе обавештавања је још увек одсутан са сервера (промењена је порука о одсутности).
+
+| irc |
+ [[hook_signal_irc_notify_back]] irc_notify_back +
+ _(WeeChat ≥ 0.3.8)_ |
+ Стринг: име сервера + „,” + надимак. |
+ Надимак из листе обавештавања се вратио (уклоњен је статус одсутности).
+
+| javascript |
+ [[hook_signal_javascript_script_loaded]] javascript_script_loaded +
+ _(WeeChat ≥ 1.2)_ |
+ Стринг: путања до скрипте. |
+ Учитана је JavaScript скрипта.
+
+| javascript |
+ [[hook_signal_javascript_script_unloaded]] javascript_script_unloaded +
+ _(WeeChat ≥ 1.2)_ |
+ String: path to script. |
+ JavaScript скрипта је уклоњена из меморије.
+
+| javascript |
+ [[hook_signal_javascript_script_installed]] javascript_script_installed +
+ _(WeeChat ≥ 1.2)_ |
+ Стринг: листа путања до инсталираних скрипти раздвојених запетама. |
+ Инсталиран(а/е) JavaScript скрипт(а/е).
+
+| javascript |
+ [[hook_signal_javascript_script_removed]] javascript_script_removed +
+ _(WeeChat ≥ 1.2)_ |
+ Стринг: листа уклоњених скрипти раздвојених запетама. |
+ Уклоњен(а/е) JavaScript скрипт(а/е).
+
+| logger |
+ [[hook_signal_logger_start]] logger_start |
+ Показивач: бафер. |
+ Почиње логовање бафера.
+
+| logger |
+ [[hook_signal_logger_stop]] logger_stop |
+ Показивач: бафер. |
+ Престаје логовање бафера.
+
+| logger |
+ [[hook_signal_logger_backlog]] logger_backlog |
+ Показивач: бафер. |
+ Приказивање ранијих линија из бафера.
+
+| lua |
+ [[hook_signal_lua_script_loaded]] lua_script_loaded +
+ _(WeeChat ≥ 0.3.9)_ |
+ Стринг: путања до скрипте. |
+ Учитана је Lua скрипта.
+
+| lua |
+ [[hook_signal_lua_script_unloaded]] lua_script_unloaded +
+ _(WeeChat ≥ 0.3.9)_ |
+ Стринг: путања до скрипте. |
+ Lua скрипта је уклоњена из меморије.
+
+| lua |
+ [[hook_signal_lua_script_installed]] lua_script_installed +
+ _(WeeChat ≥ 0.3.9)_ |
+ Стринг: листа путања до инсталираних скрипти раздвојених запетама. |
+ Инсталиран(а/е) Lua скрипт(а/е).
+
+| lua |
+ [[hook_signal_lua_script_removed]] lua_script_removed +
+ _(WeeChat ≥ 0.3.9)_ |
+ Стринг: листа уклоњених скрипти раздвојених запетама. |
+ Уклоњен(а/е) Lua скрипт(а/е).
+
+| perl |
+ [[hook_signal_perl_script_loaded]] perl_script_loaded +
+ _(WeeChat ≥ 0.3.9)_ |
+ Стринг: путања до скрипте. |
+ Учитана је Perl скрипта.
+
+| perl |
+ [[hook_signal_perl_script_unloaded]] perl_script_unloaded +
+ _(WeeChat ≥ 0.3.9)_ |
+ Стринг: путања до скрипте. |
+ Perl скрипта је уклоњена из меморије.
+
+| perl |
+ [[hook_signal_perl_script_installed]] perl_script_installed +
+ _(WeeChat ≥ 0.3.9)_ |
+ Стринг: листа путања до инсталираних скрипти раздвојених запетама. |
+ Инсталиран(а/е) Perl скрипт(а/е).
+
+| perl |
+ [[hook_signal_perl_script_removed]] perl_script_removed +
+ _(WeeChat ≥ 0.3.9)_ |
+ Стринг: листа уклоњених скрипти раздвојених запетама. |
+ Уклоњен(а/е) Perl скрипт(а/е).
+
+| php |
+ [[hook_signal_php_script_loaded]] php_script_loaded +
+ _(WeeChat ≥ 2.0)_ |
+ Стринг: путања до скрипте. |
+ Учитана је PHP скрипта.
+
+| php |
+ [[hook_signal_php_script_unloaded]] php_script_unloaded +
+ _(WeeChat ≥ 2.0)_ |
+ Стринг: путања до скрипте. |
+ PHP скрипта је уклоњена из меморије.
+
+| php |
+ [[hook_signal_php_script_installed]] php_script_installed +
+ _(WeeChat ≥ 2.0)_ |
+ Стринг: листа путања до инсталираних скрипти раздвојених запетама. |
+ Инсталиран(а/е) PHP скрипт(а/е).
+
+| php |
+ [[hook_signal_php_script_removed]] php_script_removed +
+ _(WeeChat ≥ 2.0)_ |
+ Стринг: листа уклоњених скрипти раздвојених запетама. |
+ Уклоњен(а/е) PHP скрипт(а/е).
+
+| python |
+ [[hook_signal_python_script_loaded]] python_script_loaded +
+ _(WeeChat ≥ 0.3.9)_ |
+ Стринг: путања до скрипте. |
+ Учитана је Python скрипта.
+
+| python |
+ [[hook_signal_python_script_unloaded]] python_script_unloaded +
+ _(WeeChat ≥ 0.3.9)_ |
+ Стринг: путања до скрипте. |
+ Python скрипта је уклоњена из меморије.
+
+| python |
+ [[hook_signal_python_script_installed]] python_script_installed +
+ _(WeeChat ≥ 0.3.9)_ |
+ Стринг: листа путања до инсталираних скрипти раздвојених запетама. |
+ Инсталиран(а/е) Python скрипт(а/е).
+
+| python |
+ [[hook_signal_python_script_removed]] python_script_removed +
+ _(WeeChat ≥ 0.3.9)_ |
+ Стринг: листа уклоњених скрипти раздвојених запетама. |
+ Уклоњен(а/е) Python скрипт(а/е).
+
+| relay |
+ [[hook_signal_relay_client_connecting]] relay_client_connecting +
+ _(WeeChat ≥ 1.0)_ |
+ Показивач: релеј клијент. |
+ Релеј клијент се повезује.
+
+| relay |
+ [[hook_signal_relay_client_waiting_auth]] relay_client_waiting_auth +
+ _(WeeChat ≥ 1.0)_ |
+ Показивач: релеј клијент. |
+ Чека се на аутентификацију релеј клијента.
+
+| relay |
+ [[hook_signal_relay_client_auth_ok]] relay_client_auth_ok +
+ _(WeeChat ≥ 1.0)_ |
+ Показивач: релеј клијент. |
+ Успешна аутентификација релеј клијента.
+
+| relay |
+ [[hook_signal_relay_client_connected]] relay_client_connected +
+ _(WeeChat ≥ 1.0)_ |
+ Показивач: релеј клијент. |
+ Релеј клијент се повезао.
+
+| relay |
+ [[hook_signal_relay_client_auth_failed]] relay_client_auth_failed +
+ _(WeeChat ≥ 1.0)_ |
+ Показивач: релеј клијент. |
+ Аутентификација релеј клијента није успела.
+
+| relay |
+ [[hook_signal_relay_client_disconnected]] relay_client_disconnected +
+ _(WeeChat ≥ 1.0)_ |
+ Показивач: релеј клијент. |
+ Прекинута је веза релеј клијентом.
+
+| ruby |
+ [[hook_signal_ruby_script_loaded]] ruby_script_loaded +
+ _(WeeChat ≥ 0.3.9)_ |
+ Стринг: путања до скрипте. |
+ Учитана је Ruby скрипта.
+
+| ruby |
+ [[hook_signal_ruby_script_unloaded]] ruby_script_unloaded +
+ _(WeeChat ≥ 0.3.9)_ |
+ Стринг: путања до скрипте. |
+ Ruby скрипта је уклоњена из меморије.
+
+| ruby |
+ [[hook_signal_ruby_script_installed]] ruby_script_installed +
+ _(WeeChat ≥ 0.3.9)_ |
+ Стринг: листа путања до инсталираних скрипти раздвојених запетама. |
+ Инсталиран(а/е) Ruby скрипт(а/е).
+
+| ruby |
+ [[hook_signal_ruby_script_removed]] ruby_script_removed +
+ _(WeeChat ≥ 0.3.9)_ |
+ Стринг: листа уклоњених скрипти раздвојених запетама. |
+ Уклоњен(а/е) Ruby скрипт(а/е).
+
+| spell |
+ [[hook_signal_spell_suggest]] spell_suggest +
+ _(WeeChat ≥ 2.4)_ |
+ Показивач: бафер. |
+ Нови предлог за погрешно написану реч.
+
+| tcl |
+ [[hook_signal_tcl_script_loaded]] tcl_script_loaded +
+ _(WeeChat ≥ 0.3.9)_ |
+ Стринг: путања до скрипте. |
+ Учитана је Tcl скрипта.
+
+| tcl |
+ [[hook_signal_tcl_script_unloaded]] tcl_script_unloaded +
+ _(WeeChat ≥ 0.3.9)_ |
+ Стринг: путања до скрипте. |
+ Tcl скрипта је уклоњена из меморије.
+
+| tcl |
+ [[hook_signal_tcl_script_installed]] tcl_script_installed +
+ _(WeeChat ≥ 0.3.9)_ |
+ Стринг: листа путања до инсталираних скрипти раздвојених запетама. |
+ Инсталран(а/е) Tcl скрипт(а/е).
+
+| tcl |
+ [[hook_signal_tcl_script_removed]] tcl_script_removed +
+ _(WeeChat ≥ 0.3.9)_ |
+ Стринг: листа уклоњених скрипти раздвојених запетама. |
+ Уклоњен(а/е) Tcl скрипт(а/е).
+
+| weechat |
+ [[hook_signal_buffer_opened]] buffer_opened |
+ Показивач: бафер. |
+ Отворен је бафер.
+
+| weechat |
+ [[hook_signal_buffer_closing]] buffer_closing |
+ Показивач: бафер. |
+ Бафер се затвара.
+
+| weechat |
+ [[hook_signal_buffer_closed]] buffer_closed |
+ Показивач: бафер. |
+ Бафер је затворен.
+
+| weechat |
+ [[hook_signal_buffer_cleared]] buffer_cleared |
+ Показивач: бафер. |
+ Бафер је очишћен.
+
+| weechat |
+ [[hook_signal_buffer_filters_enabled]] buffer_filters_enabled +
+ _(WeeChat ≥ 2.0)_ |
+ Показивач: бафер. |
+ У баферу су укључени филтери.
+
+| weechat |
+ [[hook_signal_buffer_filters_disabled]] buffer_filters_disabled +
+ _(WeeChat ≥ 2.0)_ |
+ Показивач: бафер. |
+ У баферу су искључени филтери.
+
+| weechat |
+ [[hook_signal_buffer_hidden]] buffer_hidden |
+ Показивач: бафер. |
+ Бафер је скривен.
+
+| weechat |
+ [[hook_signal_buffer_unhidden]] buffer_unhidden |
+ Показивач: бафер. |
+ Бафер је откривен.
+
+| weechat |
+ [[hook_signal_buffer_line_added]] buffer_line_added +
+ _(WeeChat ≥ 0.3.7)_ |
+ Показивач: линија. |
+ У бафер је додата линија.
+
+| weechat |
+ [[hook_signal_buffer_lines_hidden]] buffer_lines_hidden |
+ Показивач: бафер. |
+ У баферу су сакривене линије.
+
+| weechat |
+ [[hook_signal_buffer_localvar_added]] buffer_localvar_added |
+ Показивач: бафер. |
+ Додата је локална променљива.
+
+| weechat |
+ [[hook_signal_buffer_localvar_changed]] buffer_localvar_changed |
+ Показивач: бафер. |
+ Измењена је локална променљива.
+
+| weechat |
+ [[hook_signal_buffer_localvar_removed]] buffer_localvar_removed |
+ Показивач: бафер. |
+ Уклоњена је локална променљива.
+
+| weechat |
+ [[hook_signal_buffer_merged]] buffer_merged |
+ Показивач: бафер. |
+ Бафер је спојен.
+
+| weechat |
+ [[hook_signal_buffer_unmerged]] buffer_unmerged |
+ Показивач: бафер. |
+ Бафер је раздвојен.
+
+| weechat |
+ [[hook_signal_buffer_moved]] buffer_moved |
+ Показивач: бафер. |
+ Бафер је померен.
+
+| weechat |
+ [[hook_signal_buffer_renamed]] buffer_renamed |
+ Показивач: бафер. |
+ Баферу је промењено име.
+
+| weechat |
+ [[hook_signal_buffer_switch]] buffer_switch |
+ Показивач: бафер. |
+ Прелази се на други бафер.
+
+| weechat |
+ [[hook_signal_buffer_title_changed]] buffer_title_changed |
+ Показивач: бафер. |
+ Промењен је наслов бафера.
+
+| weechat |
+ [[hook_signal_buffer_type_changed]] buffer_type_changed |
+ Показивач: бафер. |
+ Промењен је тип бафера.
+
+| weechat |
+ [[hook_signal_buffer_zoomed]] buffer_zoomed +
+ _(WeeChat ≥ 0.4.3)_ |
+ Показивач: бафер. |
+ Зумиран је спојени бафер.
+
+| weechat |
+ [[hook_signal_buffer_unzoomed]] buffer_unzoomed +
+ _(WeeChat ≥ 0.4.3)_ |
+ Показивач: бафер. |
+ Одзумиран је спојени бафер.
+
+| weechat |
+ [[hook_signal_cursor_start]] cursor_start +
+ _(WeeChat ≥ 3.2)_ |
+ - |
+Почетак режима померања курсора.
+
+| weechat |
+ [[hook_signal_cursor_end]] cursor_end +
+ _(WeeChat ≥ 3.2)_ |
+ - |
+Крај режима померања курсора.
+
+| weechat |
+ [[hook_signal_day_changed]] day_changed +
+ _(WeeChat ≥ 0.3.2)_ |
+ Стринг: нови датум, формат је: "2010-01-31". |
+ Променио се системски датум.
+
+| weechat |
+ [[hook_signal_debug_dump]] debug_dump |
+ Стринг: име додатка. |
+ Захтев за испис.
+
+| weechat |
+ [[hook_signal_debug_libs]] debug_libs |
+ - |
+Приказује спољне библиотеке које се користе.
+
+| weechat |
+ [[hook_signal_filter_added]] filter_added |
+ Показивач: филтер. |
+ Додат је филтер.
+
+| weechat |
+ [[hook_signal_filter_removing]] filter_removing |
+ Показивач: филтер. |
+ Уклањање филтера.
+
+| weechat |
+ [[hook_signal_filter_removed]] filter_removed |
+ - |
+Филтер је уклоњен.
+
+| weechat |
+ [[hook_signal_filters_enabled]] filters_enabled |
+ - |
+Укључени су филтери.
+
+| weechat |
+ [[hook_signal_filters_disabled]] filters_disabled |
+ - |
+Искључени су филтери.
+
+| weechat |
+ [[hook_signal_hotlist_changed]] hotlist_changed |
+ Показивач: бафер (може да буде NULL). |
+ Променила се врућа листа.
+
+| weechat |
+ [[hook_signal_input_paste_pending]] input_paste_pending |
+ - |
+Чека се на налепљивање.
+
+| weechat |
+ [[hook_signal_input_search]] input_search |
+ Показивач: бафер. |
+ Претрага текста у баферу.
+
+| weechat |
+ [[hook_signal_input_text_changed]] input_text_changed |
+ Показивач: бафер. |
+ Променио се текст уноса.
+
+| weechat |
+ [[hook_signal_input_text_cursor_moved]] input_text_cursor_moved |
+ Показивач: бафер. |
+ Померио се курсор текста уноса.
+
+| weechat |
+ [[hook_signal_key_bind]] key_bind |
+ Стринг: тастер. |
+ Додата је пречица.
+
+| weechat |
+ [[hook_signal_key_unbind]] key_unbind |
+ Стринг: тастер. |
+ Уклоњена је пречица.
+
+| weechat |
+ [[hook_signal_key_pressed]] key_pressed |
+ Стринг: притиснути тастер. |
+ Притиснут је тастер.
+
+| weechat |
+ [[hook_signal_key_combo_default]] key_combo_default +
+ _(WeeChat ≥ 1.0)_ |
+ Стринг: комбинација тастера. |
+ Комбинација тастера у _default_ контексту.
+
+| weechat |
+ [[hook_signal_key_combo_search]] key_combo_search +
+ _(WeeChat ≥ 1.0)_ |
+ Стринг: комбинација тастера. |
+ Комбинација тастера у _search_ контексту.
+
+| weechat |
+ [[hook_signal_key_combo_cursor]] key_combo_cursor +
+ _(WeeChat ≥ 1.0)_ |
+ Стринг: комбинација тастера. |
+ Комбинација тастера у _cursor_ контексту.
+
+| weechat |
+ [[hook_signal_mouse_enabled]] mouse_enabled +
+ _(WeeChat ≥ 1.1)_ |
+ - |
+Укључен је миш.
+
+| weechat |
+ [[hook_signal_mouse_disabled]] mouse_disabled +
+ _(WeeChat ≥ 1.1)_ |
+ - |
+Искључен је миш.
+
+| weechat |
+ [[hook_signal_nicklist_group_added]] nicklist_group_added +
+ _(WeeChat ≥ 0.3.2)_ |
+ Стринг: показивач на бафер + „,” + име групе. |
+ У листу надимака је додата група.
+
+| weechat |
+ [[hook_signal_nicklist_group_changed]] nicklist_group_changed +
+ _(WeeChat ≥ 0.3.4)_ |
+ Стринг: показивач на бафер + „,” + име групе. |
+ У листи надимака је измењена група.
+
+| weechat |
+ [[hook_signal_nicklist_group_removing]] nicklist_group_removing +
+ _(WeeChat ≥ 0.4.1)_ |
+ Стринг: показивач на бафер + „,” + име надимка. |
+ Уклања се група из листе надимака.
+
+| weechat |
+ [[hook_signal_nicklist_group_removed]] nicklist_group_removed +
+ _(WeeChat ≥ 0.3.2)_ |
+ Стринг: показивач на бафер + „,” + име надимка. |
+ Група је уклоњена из листе надимака.
+
+| weechat |
+ [[hook_signal_nicklist_nick_added]] nicklist_nick_added +
+ _(WeeChat ≥ 0.3.2)_ |
+ Стринг: показивач на бафер + „,” + име надимка. |
+ Додат је надимак у листу надимака.
+
+| weechat |
+ [[hook_signal_nicklist_nick_changed]] nicklist_nick_changed +
+ _(WeeChat ≥ 0.3.4)_ |
+ Стринг: показивач на бафер + „,” + име надимка. |
+ У листи надимака је промењен надимак.
+
+| weechat |
+ [[hook_signal_nicklist_nick_removing]] nicklist_nick_removing +
+ _(WeeChat ≥ 0.4.1)_ |
+ Стринг: показивач на бафер + „,” + име надимка. |
+ Уклањање надимка из листе надимака.
+
+| weechat |
+ [[hook_signal_nicklist_nick_removed]] nicklist_nick_removed +
+ _(WeeChat ≥ 0.3.2)_ |
+ Стринг: показивач на бафер + „,” + име надимка. |
+ Надимак је уклоњен из листе надимака.
+
+| weechat |
+ [[hook_signal_partial_completion]] partial_completion |
+ - |
+Догодило се делимично довршавање.
+
+| weechat |
+ [[hook_signal_plugin_loaded]] plugin_loaded +
+ _(WeeChat ≥ 0.3.9)_ |
+ Стринг: путања до учитаног додатка. |
+ Учитан је додатак.
+
+| weechat |
+ [[hook_signal_plugin_unloaded]] plugin_unloaded +
+ _(WeeChat ≥ 0.3.9)_ |
+ Стринг: име додатка који се уклања из меморије (пример: „irc”). |
+ Додатак је уклоњен из меморије.
+
+| weechat |
+ [[hook_signal_quit]] quit |
+ Стринг: аргументи за /quit. |
+ Корисник је задао команду `/quit`.
+
+| weechat |
+ [[hook_signal_signal_sighup]] signal_sighup +
+ _(WeeChat ≥ 1.3)_ |
+ - |
+Примљен је сигнал SIGHUP.
+
+| weechat |
+ [[hook_signal_signal_sigquit]] signal_sigquit +
+ _(WeeChat ≥ 1.2)_ |
+ - |
+Примљен је сигнал SIGQUIT (захтев за излаз са core исписом).
+
+| weechat |
+ [[hook_signal_signal_sigterm]] signal_sigterm +
+ _(WeeChat ≥ 1.2)_ |
+ - |
+Примљен је сигнал SIGTERM (складно прекидање WeeChat процеса).
+
+| weechat |
+ [[hook_signal_signal_sigwinch]] signal_sigwinch +
+ _(WeeChat ≥ 0.4.3)_ |
+ - |
+Примљен је сигнал SIGWINCH (промењена је величина терминала).
+
+| weechat |
+ [[hook_signal_upgrade]] upgrade |
+ Стринг: "quit" ако је за /upgrade наведен аргумент „-quit”, у супротном NULL. |
+ Корисник је задао команду `/upgrade`.
+
+| weechat |
+ [[hook_signal_upgrade_ended]] upgrade_ended +
+ _(WeeChat ≥ 0.3.4)_ |
+ - |
+Завршетак процеса ажурирања (команда `/upgrade`).
+
+| weechat |
+ [[hook_signal_weechat_highlight]] weechat_highlight |
+ Стринг: порука са префиксом. |
+ Догодило се истицање.
+
+| weechat |
+ [[hook_signal_weechat_pv]] weechat_pv |
+ Стринг: порука са префиксом. |
+ Приказана је приватна порука.
+
+| weechat |
+ [[hook_signal_window_closing]] window_closing +
+ _(WeeChat ≥ 0.3.6)_ |
+ Показивач: прозор. |
+ Затварање прозора.
+
+| weechat |
+ [[hook_signal_window_closed]] window_closed +
+ _(WeeChat ≥ 0.3.6)_ |
+ Показивач: прозор. |
+ Прозор је затворен.
+
+| weechat |
+ [[hook_signal_window_opened]] window_opened +
+ _(WeeChat ≥ 0.4.1)_ |
+ Показивач: прозор. |
+ Прозор је отворен.
+
+| weechat |
+ [[hook_signal_window_scrolled]] window_scrolled |
+ Показивач: прозор. |
+ Скроловање у прозору.
+
+| weechat |
+ [[hook_signal_window_switch]] window_switch +
+ _(WeeChat ≥ 0.3.7)_ |
+ Показивач: прозор. |
+ Прелазак на други прозор.
+
+| weechat |
+ [[hook_signal_window_zoom]] window_zoom |
+ Показивач: текући прозор. |
+ Зумирање прозора.
+
+| weechat |
+ [[hook_signal_window_zoomed]] window_zoomed |
+ Показивач: текући прозор. |
+ Прозор је зумиран.
+
+| weechat |
+ [[hook_signal_window_unzoom]] window_unzoom |
+ Показивач: текући прозор. |
+ Одзумирање прозора.
+
+| weechat |
+ [[hook_signal_window_unzoomed]] window_unzoomed |
+ Показивач: текући прозор. |
+ Прозор је одзумиран.
+
+| xfer |
+ [[hook_signal_xfer_add]] xfer_add |
+ Показивач: инфолиста са xfer информацијама. |
+ Нови xfer.
+
+| xfer |
+ [[hook_signal_xfer_send_ready]] xfer_send_ready |
+ Показивач: инфолиста са xfer информацијама. |
+ Xfer је спреман.
+
+| xfer |
+ [[hook_signal_xfer_accept_resume]] xfer_accept_resume |
+ Показивач: инфолиста са xfer информацијама. |
+ Прихватање наставка xfer.
+
+| xfer |
+ [[hook_signal_xfer_send_accept_resume]] xfer_send_accept_resume |
+ Показивач: инфолиста са xfer информацијама. |
+ Xfer је настављен.
+
+| xfer |
+ [[hook_signal_xfer_start_resume]] xfer_start_resume |
+ Показивач: инфолиста са xfer информацијама. |
+ Почетак наставка.
+
+| xfer |
+ [[hook_signal_xfer_resume_ready]] xfer_resume_ready |
+ Показивач: инфолиста са xfer информацијама. |
+ Xfer наставак је спреман.
+
+| xfer |
+ [[hook_signal_xfer_ended]] xfer_ended +
+ _(WeeChat ≥ 0.3.2)_ |
+ Показивач: инфолиста са xfer информацијама. |
+ Xfer се завршио.
+|===
+
+[NOTE]
+^(1)^ _xxx_ је име IRC сервера, _yyy_ је име IRC команде.
+
+C пример:
+
+[source, C]
+----
+int
+my_signal_cb (const void *pointer, void *data, const char *signal,
+ const char *type_data, void *signal_data)
+{
+ /* ... */
+ return WEECHAT_RC_OK;
+}
+
+/* хвата сигнал "quit" */
+struct t_hook *my_signal_hook = weechat_hook_signal ("quit",
+ &my_signal_cb, NULL, NULL);
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def hook_signal(signal: str, callback: str, callback_data: str) -> str: ...
+
+# пример
+def my_signal_cb(data, signal, signal_data):
+ # ...
+ return weechat.WEECHAT_RC_OK
+
+# хвата сигнал "quit"
+hook = weechat.hook_signal("quit", "my_signal_cb", "")
+----
+
+==== hook_signal_send
+
+_Ажурирано у верзији 1.0._
+
+Шаље сигнал.
+
+Прототип:
+
+[source, C]
+----
+int weechat_hook_signal_send (const char *signal, const char *type_data,
+ void *signal_data);
+----
+
+Аргументи:
+
+* _signal_: сигнал који се шаље
+* _type_data_: тип података који се шаљу уз сигнал (погледајте <<_hook_signal,hook_signal>>)
+* _signal_data_: подаци који се шаљу уз сигнал
+
+Повратна вредност _(WeeChat ≥ 1.0)_:
+
+* повратни кôд последње извршене функције повратног позива (_WEECHAT_RC_OK_ ако ниједна функција повратног позива није била извршена):
+** _WEECHAT_RC_OK_
+** _WEECHAT_RC_OK_EAT_
+** _WEECHAT_RC_ERROR_
+
+C пример:
+
+[source, C]
+----
+int rc = weechat_hook_signal_send ("my_signal", WEECHAT_HOOK_SIGNAL_STRING, my_string);
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def hook_signal_send(signal: str, type_data: str, signal_data: str) -> int: ...
+
+# пример
+rc = weechat.hook_signal_send("my_signal", weechat.WEECHAT_HOOK_SIGNAL_STRING, my_string)
+----
+
+[[signal_logger_backlog]]
+===== Сигнал logger_backlog
+
+Сигнал „logger_backlog” може да се пошаље ако желите да се прикажу раније линије (историја разговора) из бафера (на пример, ако отворите сопствени бафер у вашем додатку/скрипти).
+
+Аргумент је показивач на бафер.
+
+C пример:
+
+[source, C]
+----
+weechat_hook_signal_send ("logger_backlog", WEECHAT_HOOK_SIGNAL_POINTER, buffer);
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+weechat.hook_signal_send("logger_backlog", weechat.WEECHAT_HOOK_SIGNAL_POINTER, buffer)
+----
+
+[[signals_xxx_script_install]]
+===== Сигнали xxx_script_install
+
+За инсталацију скрипте може да се пошаље један од осам сигнала, у зависности од језика:
+
+* _perl_script_install_
+* _python_script_install_
+* _ruby_script_install_
+* _lua_script_install_
+* _tcl_script_install_
+* _guile_script_install_
+* _javascript_script_install_
+* _php_script_install_
+
+Када прими сигнал, функција повратног позива ће одрадити следеће акције:
+
+. Учитавање и уклањање из меморије инсталиране скрипте.
+. Померање нове скрипте у директоријум _~/.local/share/weechat/xxx/_ (где је _xxx_ језик).
+. Креирање линка на нову скрипту у директоријуму _~/.local/share/weechat/xxx/autoload/_ (само ако је скрипта веђ била аутоучитана, или ако је за нову скрипту укључена опција _script.scripts.autoload_).
+. Учитавање нове скрипте (ако је скрипта била учитана).
+
+Ове сигнале користи _script_ додатак приликом инсталације скрипти.
+
+Аргумент је стринг са путањом до скрипте која се инсталира.
+
+C пример:
+
+[source, C]
+----
+weechat_hook_signal_send ("python_script_install", WEECHAT_HOOK_SIGNAL_STRING, "/путања/до/test.py");
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+weechat.hook_signal_send("python_script_install", WEECHAT_HOOK_SIGNAL_STRING, "/путања/до/test.py")
+----
+
+[[signals_xxx_script_remove]]
+===== Сигнали xxx_script_remove
+
+За уклањање листе скрипти може да се пошаље један од осам сигнала, у зависности од језика:
+
+* _perl_script_remove_
+* _python_script_remove_
+* _ruby_script_remove_
+* _lua_script_remove_
+* _tcl_script_remove_
+* _guile_script_remove_
+* _javascript_script_remove_
+* _php_script_remove_
+
+За сваку скрипту из листе, функција повратног позива ће скрипту прво уклонити из меморије, па ће је затим обрисати
+
+Додатак _script_ користи ове сигнале за уклањање скрипти.
+
+Аргумент је стринг са листом скрипти за уклањање раздвојених запетама (скрипта је име без путање, на пример _script.py_).
+
+C пример:
+
+[source, C]
+----
+/* уклањање из меморије и брисање скрипти test.py и script.py */
+weechat_hook_signal_send ("python_script_remove", WEECHAT_HOOK_SIGNAL_STRING,
+ "test.py,script.py");
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# уклањање из меморије и брисање скрипти test.py и script.py
+weechat.hook_signal_send("python_script_remove", WEECHAT_HOOK_SIGNAL_STRING,
+ "test.py,script.py")
+----
+
+[[signal_irc_input_send]]
+===== Сигнал irc_input_send
+
+_WeeChat ≥ 0.3.4, ажурирано у верзији 1.5._
+
+Сигнал „irc_input_send” може да се пошаље да би се симулирао унос у irc бафер (сервера, канала или приватни).
+
+Аргумент је стринг у следећем формату:
+
+* интерно име сервера (обавезно)
+* тачка зарез
+* име канала (није обавезно)
+* тачка зарез
+* листа опција раздвојених запетама (није обавезна):
+** _priority_high_: ред са високим приоритетом (као што су корисничке поруке); ово је подразумевани приоритет
+** _priority_low_: ред са ниским приоритетом (као што су поруке које аутоматски шаље програм WeeChat)
+** _user_message_: форсира корисничку поруку (не извршава команду)
+* тачка зарез
+* листа ознака које се користе када се шаље порука раздвојених запетама (није обавезна)
+* тачка зарез
+* текст или команда (обавезан)
+
+C примери:
+
+[source, C]
+----
+/* реци "Здраво!" на libera серверу, #weechat каналу */
+weechat_hook_signal_send ("irc_input_send", WEECHAT_HOOK_SIGNAL_STRING,
+ "libera;#weechat;priority_high,user_message;;Здраво!");
+
+/* шаље команду "/whois FlashCode" на libera сервер, са ниским приоритетом */
+weechat_hook_signal_send ("irc_input_send", WEECHAT_HOOK_SIGNAL_STRING,
+ "libera;;priority_low;;/whois FlashCode");
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# реци "Здраво!" на libera серверу, #weechat каналу
+weechat.hook_signal_send("irc_input_send", weechat.WEECHAT_HOOK_SIGNAL_STRING,
+ "libera;#weechat;priority_high,user_message;;Здраво!")
+
+# шаље команду "/whois FlashCode" на libera сервер, са ниским приоритетом
+weechat.hook_signal_send("irc_input_send", weechat.WEECHAT_HOOK_SIGNAL_STRING,
+ "libera;;priority_low;;/whois FlashCode")
+----
+
+==== hook_hsignal
+
+_WeeChat ≥ 0.3.4, ажурирано у верзији 1.5._
+
+Качи се на hsignal (сигнал са хеш табелом).
+
+Прототип:
+
+[source, C]
+----
+struct t_hook *weechat_hook_hsignal (const char *signal,
+ int (*callback)(const void *pointer,
+ void *data,
+ const char *signal,
+ struct t_hashtable *hashtable),
+ const void *callback_pointer,
+ void *callback_data);
+----
+
+Аргументи:
+
+* _signal_: сигнал који се хвата, дозвољава се џокер `+*+` (дозвољен је приоритет, погледајте напомену о <<hook_priority,приоритетима>>) (погледајте табелу испод)
+* _callback_: функција која се позива када се прими сигнал, аргументи и повратна вредност су:
+** _const void *pointer_: показивач
+** _void *data_: показивач
+** _const char *signal_: примљени сигнал
+** _struct t_hashtable *hashtable_: хеш табела
+** повратна вредност:
+*** _WEECHAT_RC_OK_
+*** _WEECHAT_RC_OK_EAT_ (тренутно прекида слање сигнала) _(WeeChat ≥ 0.4.0)_
+*** _WEECHAT_RC_ERROR_
+* _callback_pointer_: показивач који се прослеђује функцији повратног позива када је позове програм WeeChat
+* _callback_data_: показивач који се прослеђује функцији повратног позива када је позове програм WeeChat; ако није NULL, алоцирала га је malloc (или нека слична функција) и аутоматски се ослобађа када се кука обрише
+
+Повратна вредност:
+
+* показивач на нову куку, NULL у случају грешке
+
+Листа hsignalа:
+
+[width="100%", cols="^1,^3,5,5", options="header"]
+|===
+| Додатак | Сигнал | Аргументи | Опис
+
+| irc |
+ [[hook_hsignal_irc_redirection_xxx_yyy]] irc_redirection_xxx_yyy ^(1)^ +
+ _(WeeChat ≥ 0.3.4)_ |
+ Погледајте <<hsignal_irc_redirect_command,hsignal_irc_redirect_command>> |
+ Преусмеравање излаза.
+
+| weechat |
+ [[hook_hsignal_nicklist_group_added]] nicklist_group_added +
+ _(WeeChat ≥ 0.4.1)_ |
+ _buffer_ (_struct t_gui_buffer *_): бафер +
+ _parent_group_ (_struct t_gui_nick_group *_): родитељ група +
+ _group_ (_struct t_gui_nick_group *_): група |
+ У листу надимака је додата група.
+
+| weechat |
+ [[hook_hsignal_nicklist_nick_added]] nicklist_nick_added +
+ _(WeeChat ≥ 0.4.1)_ |
+ _buffer_ (_struct t_gui_buffer *_): бафер +
+ _parent_group_ (_struct t_gui_nick_group *_): родитељ група +
+ _nick_ (_struct t_gui_nick *_): надимак |
+ Надимак је додат у листу надимака.
+
+| weechat |
+ [[hook_hsignal_nicklist_group_removing]] nicklist_group_removing +
+ _(WeeChat ≥ 0.4.1)_ |
+ _buffer_ (_struct t_gui_buffer *_): бафер +
+ _parent_group_ (_struct t_gui_nick_group *_): родитељ група +
+ _group_ (_struct t_gui_nick_group *_): група |
+ Уклањање групе из листе надимака.
+
+| weechat |
+ [[hook_hsignal_nicklist_nick_removing]] nicklist_nick_removing +
+ _(WeeChat ≥ 0.4.1)_ |
+ _buffer_ (_struct t_gui_buffer *_): бафер +
+ _parent_group_ (_struct t_gui_nick_group *_): родитељ група +
+ _nick_ (_struct t_gui_nick *_): надимак |
+ Уклањање надимка из листе надимака.
+
+| weechat |
+ [[hook_hsignal_nicklist_group_changed]] nicklist_group_changed +
+ _(WeeChat ≥ 0.4.1)_ |
+ _buffer_ (_struct t_gui_buffer *_): бафер +
+ _parent_group_ (_struct t_gui_nick_group *_): родитељ група +
+ _group_ (_struct t_gui_nick_group *_): група |
+ У листи надимака је измењена група.
+
+| weechat |
+ [[hook_hsignal_nicklist_nick_changed]] nicklist_nick_changed +
+ _(WeeChat ≥ 0.4.1)_ |
+ _buffer_ (_struct t_gui_buffer *_): бафер +
+ _parent_group_ (_struct t_gui_nick_group *_): родитељ група +
+ _nick_ (_struct t_gui_nick *_): надимак |
+ Надимак је промењен у листи надимака.
+|===
+
+[NOTE]
+^(1)^ _xxx_ је аргумент сигнала који се користи у преусмеравању, _yyy_ је шаблон преусмеравања.
+
+C пример:
+
+[source, C]
+----
+int
+my_hsignal_cb (const void *pointer, void *data, const char *signal,
+ struct t_hashtable *hashtable)
+{
+ /* ... */
+ return WEECHAT_RC_OK;
+}
+
+struct t_hook *my_hsignal_hook = weechat_hook_hsignal ("test",
+ &my_hsignal_cb, NULL, NULL);
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def hook_hsignal(signal: str, callback: str, callback_data: str) -> str: ...
+
+# пример
+def my_hsignal_cb(data, signal, hashtable):
+ # ...
+ return weechat.WEECHAT_RC_OK
+
+hook = weechat.hook_hsignal("test", "my_hsignal_cb", "")
+----
+
+==== hook_hsignal_send
+
+_WeeChat ≥ 0.3.4, ажурирано у верзији 1.0._
+
+Шаље hsignal (сигнал са хеш табелом).
+
+Прототип:
+
+[source, C]
+----
+int weechat_hook_hsignal_send (const char *signal, struct t_hashtable *hashtable);
+----
+
+Аргументи:
+
+* _signal_: сигнал који се шаље
+* _hashtable_: хеш табела
+
+Повратна вредност _(WeeChat ≥ 1.0)_:
+
+* повратни кôд последње извршене функције повратног позива (_WEECHAT_RC_OK_ ако ниједна функција повратног позива није била извршена):
+** _WEECHAT_RC_OK_
+** _WEECHAT_RC_OK_EAT_
+** _WEECHAT_RC_ERROR_
+
+C пример:
+
+[source, C]
+----
+int rc;
+struct t_hashtable *hashtable = weechat_hashtable_new (8,
+ WEECHAT_HASHTABLE_STRING,
+ WEECHAT_HASHTABLE_STRING,
+ NULL,
+ NULL);
+if (hashtable)
+{
+ weechat_hashtable_set (hashtable, "key", "value");
+ rc = weechat_hook_hsignal_send ("my_hsignal", hashtable);
+ weechat_hashtable_free (hashtable);
+}
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def hook_hsignal_send(signal: str, hashtable: Dict[str, str]) -> int: ...
+
+# пример
+rc = weechat.hook_hsignal_send("my_hsignal", {"key": "value"})
+----
+
+[[hsignal_irc_redirect_command]]
+===== Hsignal irc_redirect_command
+
+_WeeChat ≥ 0.3.4._
+
+„irc_redirect_command” hsignal се шаље када желите да излаз irc команде преусмерите у функцију повратног позива.
+
+Аргумент је хеш табела са следећим ставкама (кључеви и вредности су стрингови):
+
+* _server_: интерно име сервера (обавезно)
+* _pattern_: шаблон за преусмеравање који треба да се користи (обавезан), или подразумевани (који дефинише irc додатак), или кориснички шаблон (погледајте <<hsignal_irc_redirect_pattern>>), подразумевани шаблони су:
+** _ison_
+** _list_
+** _mode_channel_
+** _mode_channel_ban_ ("mode #channel b")
+** _mode_channel_ban_exception_ ("mode #channel e")
+** _mode_channel_invite_ ("mode #channel I")
+** _mode_user_
+** _monitor_
+** _names_
+** _ping_
+** _time_
+** _topic_
+** _userhost_
+** _who_
+** _whois_
+** _whowas_
+* _signal_: име сигнала (обавезно)
+* _count_: колико пута ће преусмеравање радити (није обавезно, подразумевано је 1)
+* _string_: стринг који мора бити у примљеној irc поруци (није обавезно, али се препоручује, ако поруке могу да се идентификују стрингом)
+* _timeout_: тајмаут за преусмеравање, у секундама (није обавезан, подразумевано је 60)
+* _cmd_filter_: листа irc команди које се филтирају, раздвојене запетама (само ове команде ће се слати функцијама повратног позива, остале ће се игнорисати) (није обавезно)
+
+Чим пошаљете овај hsignal, морате послати команду irc серверу и преусмеравање ће се употребити за ту команду.
+
+Када се прими комплетан одговор на вашу команду, послаће се hsignal. Овај hsignal има име _irc_redirection_xxx_yyy_ где је _xxx_ _signal_, а_yyy_ употребљени _pattern_.
+
+Хеш табела која се шаље у hsignal има следећи садржај (кључеви и вредности су стрингови):
+
+* _output_: излаз команде (поруке се раздвајају са „\n”)
+* _output_size_: број бајтова у _output_ (као стринг)
+* _error_: стринг грешке (у случају да је дошло до грешке):
+** _timeout_: преусмеравање је прекинуто након истека тајмаута
+* _server_: интерно име сервера
+* _pattern_: шаблон преусмеравања
+* _signal_: име сигнала
+* _command_: преусмерена команда
+
+C пример:
+
+[source, C]
+----
+int
+test_whois_cb (const void *pointer, void *data, const char *signal,
+ struct t_hashtable *hashtable)
+{
+ weechat_printf (NULL, "error = %s", weechat_hashtable_get (hashtable, "error"));
+ weechat_printf (NULL, "output = %s", weechat_hashtable_get (hashtable, "output"));
+ return WEECHAT_RC_OK;
+}
+
+weechat_hook_hsignal ("irc_redirection_test_whois", &test_whois_cb, NULL, NULL);
+struct t_hashtable *hashtable = weechat_hashtable_new (8,
+ WEECHAT_HASHTABLE_STRING,
+ WEECHAT_HASHTABLE_STRING,
+ NULL,
+ NULL);
+if (hashtable)
+{
+ weechat_hashtable_set (hashtable, "server", "libera");
+ weechat_hashtable_set (hashtable, "pattern", "whois");
+ weechat_hashtable_set (hashtable, "signal", "test");
+ weechat_hashtable_set (hashtable, "string", "FlashCode");
+ weechat_hook_hsignal_send ("irc_redirect_command", hashtable);
+ weechat_hook_signal_send ("irc_input_send", WEECHAT_HOOK_SIGNAL_STRING,
+ "libera;;2;;/whois FlashCode");
+ weechat_hashtable_free (hashtable);
+}
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+def test_whois_cb(data, signal, hashtable):
+ weechat.prnt("", "error = %s" % hashtable["error"])
+ weechat.prnt("", "output = %s" % hashtable["output"])
+ return weechat.WEECHAT_RC_OK
+
+weechat.hook_hsignal("irc_redirection_test_whois", "test_whois_cb", "")
+weechat.hook_hsignal_send("irc_redirect_command",
+ {"server": "libera", "pattern": "whois", "signal": "test",
+ "string": "FlashCode"})
+weechat.hook_signal_send("irc_input_send", weechat.WEECHAT_HOOK_SIGNAL_STRING,
+ "libera;;2;;/whois FlashCode")
+----
+
+[[hsignal_irc_redirect_pattern]]
+===== Hsignal irc_redirect_pattern
+
+_WeeChat ≥ 0.3.4._
+
+Hsignal „irc_redirect_pattern” може да се пошаље када желите да креирате шаблон за irc преусмеравање (погледајте <<hsignal_irc_redirect_command>>).
+
+Аргумент је хеш табела са следећим ставкама (кључеви и вредности су стрингови):
+
+* _pattern_: име шаблона (обавезно)
+* _timeout_: подразумевани тајмаут за шаблон, у секундама (није обавезан, подразумевано је 60)
+* _cmd_start_: листа команди које покрећу преусмеравање раздвојених запетама (није обавезна)
+* _cmd_stop_: листа команди које заустављају преусмеравање раздвојених запетама (обавезна)
+* _cmd_extra_: листа команди које могу да се приме након команди заустављања раздвојених запетама (није обавезна)
+
+За сваку команду у _cmd_start_, _cmd_stop_ и _cmd_extra_ може да се зада цео број са позицијом „стринга” који мора да се нађе у примљеној поруци, на пример:
+
+----
+352:1,354,401:1
+----
+
+За команде 352 и 401, „string” мора да се пронађе у примљеној поруци као први аргумент.
+
+[IMPORTANT]
+Када се употреби за преусмеравање, шаблон се уништава. Ако вам је потребан шаблон за више преусмеравања, морате да га креирате пре сваког преусмеравања.
+
+C пример:
+
+[source, C]
+----
+struct t_hashtable *hashtable = weechat_hashtable_new (8,
+ WEECHAT_HASHTABLE_STRING,
+ WEECHAT_HASHTABLE_STRING,
+ NULL,
+ NULL);
+if (hashtable)
+{
+ weechat_hashtable_set (hashtable, "pattern", "my_whois");
+ weechat_hashtable_set (hashtable, "timeout", "30");
+ weechat_hashtable_set (hashtable, "cmd_start", "311:1");
+ weechat_hashtable_set (hashtable, "cmd_stop", "318:1,401:1,402:1,431:1,461");
+ weechat_hashtable_set (hashtable, "cmd_extra", "318:1");
+ weechat_hook_hsignal_send ("irc_redirect_pattern", hashtable);
+ /*
+ * now redirect irc whois command with hsignal irc_redirect_command,
+ * using pattern "my_whois"
+ */
+ /* ... */
+ weechat_hashtable_free (hashtable);
+}
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+weechat.hook_hsignal_send("irc_redirect_pattern",
+ {"pattern": "my_whois", "timeout": "30",
+ "cmd_start": "311:1",
+ "cmd_stop": "318:1,401:1,402:1,431:1,461",
+ "cmd_extra": "318:1"})
+# сада преусмерите irc whois команду са hsignal irc_redirect_command
+# користећи шаблон "my_whois"
+# ...
+----
+
+==== hook_config
+
+_Ажурирано у верзији 1.5._
+
+Качи се на опцију конфигурације.
+
+Прототип:
+
+[source, C]
+----
+struct t_hook *weechat_hook_config (const char *option,
+ int (*callback)(const void *pointer,
+ void *data,
+ const char *option,
+ const char *value),
+ const void *callback_pointer,
+ void *callback_data);
+----
+
+Аргументи:
+
+* _option_: опција, формат је пуно име, као што се користи у команди `/set` на пример: `+weechat.look.item_time_format+`), дозвољава се џокер `+*+` (дозвољена је употреба приоритета, погледајте напомену о <<hook_priority,приоритетима>>)
+* _callback_: функција која се позива када се измени опција конфигурације, аргументи и повратна вредност су:
+** _const void *pointer_: показивач
+** _void *data_: показивач
+** _const char *option_: име опције
+** _const char *value_: нова вредност опције
+** повратна вредност:
+*** _WEECHAT_RC_OK_
+*** _WEECHAT_RC_ERROR_
+* _callback_pointer_: показивач који се прослеђује функцији повратног позива када је позове програм WeeChat
+* _callback_data_: показивач који се прослеђује функцији повратног позива када је позове програм WeeChat; ако није NULL, алоцирала га је malloc (или нека слична функција) и аутоматски се ослобађа када се кука обрише
+
+Повратна вредност:
+
+* показивач на нову куку, NULL у случају грешке
+
+C пример:
+
+[source, C]
+----
+int
+my_config_cb (const void *pointer, void *data, const char *option,
+ const char *value)
+{
+ /* ... */
+ return WEECHAT_RC_OK;
+}
+
+/* хвата измене опције „weechat.look.item_time_format” */
+struct t_hook *my_config_hook = weechat_hook_config ("weechat.look.item_time_format",
+ &my_config_cb, NULL, NULL);
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def hook_config(option: str, callback: str, callback_data: str) -> str: ...
+
+# пример
+def my_config_cb(data, option, value):
+ # ...
+ return weechat.WEECHAT_RC_OK
+
+# хвата измене опције „weechat.look.item_time_format”
+hook = weechat.hook_config("weechat.look.item_time_format", "my_config_cb", "")
+----
+
+==== hook_modifier
+
+_Ажурирано у верзији 1.5._
+
+Качи се на модификатор.
+
+Прототип:
+
+[source, C]
+----
+struct t_hook *weechat_hook_modifier (const char *modifier,
+ char *(*callback)(const void *pointer,
+ void *data,
+ const char *modifier,
+ const char *modifier_data,
+ const char *string),
+ const void *callback_pointer,
+ void *callback_data);
+----
+
+Аргументи:
+
+* _modifier_: име модификатора, листа модификатора које користе програм WeeChat или додаци (дозвољава се приоритет, погледајте напомену о <<hook_priority,приоритетима>>) (погледајте табелу испод)
+* _callback_: функција која се позива када се употреби модификатор, аргументи и повратна вредност су:
+** _const void *pointer_: показивач
+** _void *data_: показивач
+** _const char *modifier_: име модификатора
+** _const char *modifier_data_: подаци за модификатор
+** _const char *string_: стринг који се модификује
+** return value: нови стринг
+* _callback_pointer_: показивач који се прослеђује функцији повратног позива када је позове програм WeeChat
+* _callback_data_: показивач који се прослеђује функцији повратног позива када је позове програм WeeChat; ако није NULL, алоцирала га је malloc (или нека слична функција) и аутоматски се ослобађа када се кука обрише
+
+Повратна вредност:
+
+* показивач на нову куку, NULL у случају грешке
+
+Листа модификатора које користе програм WeeChat и додаци:
+
+[width="100%", cols="^2,3,4,4", options="header"]
+|===
+| Модификатор | Подаци модификатора | Стринг | Излаз
+
+| [[hook_modifier_irc_in_xxx]] irc_in_xxx ^(1)^ |
+ Име сервера |
+ Садржај поруке примљене са IRC сервера (пре декодирања скупа карактера). +
+ *Упозорење:* стринг може да садржи неважеће UTF-8 податке; користите га само
+ за сирове операције над поруком.
+ Уместо њега се препоручује употреба <<hook_modifier_irc_in2_xxx,irc_in2_xxx>>. |
+ Нови садржај поруке.
+
+| [[hook_modifier_irc_in2_xxx]] irc_in2_xxx ^(1)^ +
+ _(WeeChat ≥ 0.3.5)_ |
+ Име сервера |
+ Садржај поруке примљене са IRC сервера (након декодирања скупа карактера). |
+ Нови садржај поруке.
+
+| [[hook_modifier_irc_out1_xxx]] irc_out1_xxx ^(1)^ +
+ _(WeeChat ≥ 0.3.7)_ |
+ Име сервера |
+ Садржај поруке које треба да се пошаље IRC серверу пре аутоматске поделе
+ (да стане у 512 подразумевано). |
+ Нови садржај поруке.
+
+| [[hook_modifier_irc_out_xxx]] irc_out_xxx ^(1)^ |
+ Име сервера |
+ Садржај поруке које треба да се пошаље IRC серверу након аутоматске поделе
+ (да стане у 512 подразумевано). |
+ Нови садржај поруке.
+
+| [[hook_modifier_bar_condition_yyy]] bar_condition_yyy ^(2)^ |
+ Стринг са показивачем на прозор (нпр: "0x1234abcd") |
+ Празан стринг. |
+ "1" да се прикаже трака, "0" да се сакрије.
+
+| [[hook_modifier_history_add]] history_add +
+ _(WeeChat ≥ 0.3.2)_ |
+ Стринг са показивачем на бафер (нпр: "0x1234abcd") |
+ Садржај командне линије која треба да се дода у историју команди (бафера и глобалну). |
+ Стринг који се додаје у историју команди.
+
+| [[hook_modifier_input_text_content]] input_text_content |
+ Стринг са показивачем на бафер (нпр: "0x1234abcd") |
+ Садржај командне линије. |
+ Нови садржај командне линије.
+
+| [[hook_modifier_input_text_display]] input_text_display |
+ Стринг са показивачем на бафер (нпр: "0x1234abcd") |
+ Садржај командне линије, без ознаке курсора. |
+ Нови стринг, само за приказ (командна линија се не мења).
+
+| [[hook_modifier_input_text_display_with_cursor]] input_text_display_with_cursor |
+ Стринг са показивачем на бафер (нпр: "0x1234abcd") |
+ Садржај командне линије, са ознаком курсора. |
+ Нови стринг, само за приказ (командна линија се не мења).
+
+| [[hook_modifier_input_text_for_buffer]] input_text_for_buffer +
+ _(WeeChat ≥ 0.3.7)_ |
+ Стринг са показивачем на бафер (нпр: "0x1234abcd") |
+ Садржај командне линије која се шаље у бафер (текст или команда). |
+ Нови садржај командне линије који се шаље у бафер.
+
+| [[hook_modifier_weechat_print]] weechat_print |
+ показивач на бафер (нпр: "0x1234abcd") + ";" + ознаке ^(3)^ |
+ Порука која се исписује. |
+ Нова порука која се исписује. +
+ За више информација о кукама које се позивају када се линија исписује,
+ погледајте <<_hook_line,hook_line>>.
+|===
+
+[NOTE]
+^(1)^ _xxx_ је име IRC команде. + ^(2)^ _yyy_ је име траке. + ^(3)^ У верзијама програма WeeChat ≤ 2.8, формат је био: додатак + ";" + buffer_name + ";" + ознаке.
+
+C пример:
+
+[source, C]
+----
+char *
+my_modifier_cb (const void *pointer, void *data, const char *modifier,
+ const char *modifier_data,
+ const char *string)
+{
+ char *result;
+ int length;
+
+ if (!string)
+ return NULL;
+
+ length = strlen (string) + 5;
+ result = malloc (length);
+ if (result)
+ {
+ /* додаје „xxx” у било коју поруку која се исписује */
+ snprintf (result, length, "%s xxx", string);
+ }
+
+ return result;
+}
+
+struct t_hook *my_modifier_hook = weechat_hook_modifier ("weechat_print",
+ &my_modifier_cb, NULL, NULL);
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def hook_modifier(modifier: str, callback: str, callback_data: str) -> str: ...
+
+# пример
+def my_modifier_cb(data, modifier, modifier_data, string):
+ return "%s xxx" % string
+
+hook = weechat.hook_modifier("weechat_print", "my_modifier_cb", "")
+----
+
+==== hook_modifier_exec
+
+Извршава модификатор(е)
+
+Прототип:
+
+[source, C]
+----
+char *weechat_hook_modifier_exec (const char *modifier,
+ const char *modifier_data,
+ const char *string);
+----
+
+Аргументи:
+
+* _modifier_: име модификатора
+* _modifier_data_: подаци модификатора
+* _string_: стринг који треба да се измени
+
+Повратна вредност:
+
+* измењени стринг, NULL у случају грешке
+
+Листа модификатора за употребу које дефинишу програм WeeChat и додаци:
+
+[width="100%", cols="^2,3,4,4", options="header"]
+|===
+| Модификатор | Подаци модификатора | Стринг | Излаз
+
+| [[hook_modifier_charset_decode]] charset_decode |
+ plugin.buffer_name |
+ Било који стринг. |
+ Стринг декодиран из скупа карактера пронађеног за додатак/бафер у UTF-8.
+
+| [[hook_modifier_charset_encode]] charset_encode |
+ plugin.buffer_name |
+ Било који стринг. |
+ Стринг кодиран из UTF-8 у скуп карактера пронађен за додатак/бафер.
+
+| [[hook_modifier_irc_color_decode]] irc_color_decode |
+ "1" да се боје задрже, "0" да се боје уклоне |
+ Било који стринг. |
+ Стринг у којем су IRC боје конвертоване у WeeChat боје (или су уклоњене IRC боје).
+
+| [[hook_modifier_irc_color_encode]] irc_color_encode |
+ "1" да се боје задрже, "0" да се боје уклоне |
+ Било који стринг. |
+ Стринг са IRC бојама (или са уклоњеним IRC бојама).
+
+| [[hook_modifier_irc_color_decode_ansi]] irc_color_decode_ansi +
+ _(WeeChat ≥ 1.0)_ |
+ "1" да се боје задрже, "0" да се боје уклоне |
+ Било који стринг. |
+ Стринг у којем су ANSI боје конвертоване у IRC боје (или су уклоњене ANSI боје).
+
+| [[hook_modifier_irc_command_auth]] irc_command_auth +
+ _(WeeChat ≥ 0.4.1)_ |
+ Име сервера |
+ Команда аутентификације (на пример: `+/msg nickserv identify лозинка+`). |
+ Команда са скривеном лозинком (на пример: `+/msg nickserv identify ********+`).
+
+| [[hook_modifier_irc_message_auth]] irc_message_auth +
+ _(WeeChat ≥ 0.4.1)_ |
+ Име сервера |
+ Порука која се приказује након што се `/msg` пошаље nickserv боту. |
+ Порука са скривеном лозинком.
+
+| [[hook_modifier_color_decode_ansi]] color_decode_ansi +
+ _(WeeChat ≥ 1.0)_ |
+ "1" да се боје задрже, "0" да се боје уклоне |
+ Било који стринг. |
+ Стринг у којем су ANSI боје конвертоване у WeeChat боје (или су уклоњене WeeChat боје).
+
+| [[hook_modifier_color_encode_ansi]] color_encode_ansi +
+ _(WeeChat ≥ 2.7)_ |
+ - |
+Било који стринг. |
+Стринг са WeeChat бојама конвертованим у ANSI боје.
+
+| [[hook_modifier_eval_path_home]] eval_path_home +
+ _(WeeChat ≥ 2.7)_ |
+ Није обавезно: `directory=xxx` где `xxx` може бити: `config`, `data`, `cache`, `runtime` |
+ Било који стринг. |
+ Израчуната путања, резултат функције
+ <<_string_eval_path_home,string_eval_path_home>>.
+|===
+
+C пример:
+
+[source, C]
+----
+char *new_string = weechat_hook_modifier_exec ("my_modifier",
+ my_data, my_string);
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def hook_modifier_exec(modifier: str, modifier_data: str, string: str) -> str: ...
+
+# пример
+weechat.hook_modifier_exec("my_modifier", my_data, my_string)
+----
+
+==== hook_info
+
+_Ажурирано у верзијама 1.5, 2.5._
+
+Качи се на информацију (функција поратног позива узима и враћа стринг).
+
+Прототип:
+
+[source, C]
+----
+struct t_hook *weechat_hook_info (const char *info_name,
+ const char *description,
+ const char *args_description,
+ char *(*callback)(const void *pointer,
+ void *data,
+ const char *info_name,
+ const char *arguments),
+ const void *callback_pointer,
+ void *callback_data);
+----
+
+Аргументи:
+
+* _info_name_: име инфо (дозвољава се приоритет, погледајте напомену о <<hook_priority,приоритетима>>)
+* _description_: опис
+* _args_description_: опис аргумената (није обавезан, може да буде NULL)
+* _callback_: функција која се позива када се затражи инфо, аргументи и повратна вредност су:
+** _const void *pointer_: показивач
+** _void *data_: показивач
+** _const char *info_name_: име инфо
+** _const char *arguments_: додатни аргументи, у зависности од инфо
+** return value: вредност тражене инфо
+* _callback_pointer_: показивач који се прослеђује функцији повратног позива када је позове програм WeeChat
+* _callback_data_: показивач који се прослеђује функцији повратног позива када је позове програм WeeChat; ако није NULL, алоцирала га је malloc (или нека слична функција) и аутоматски се ослобађа када се кука обрише
+
+Повратна вредност:
+
+* показивач на нову куку, NULL у случају грешке
+
+[NOTE]
+У програму WeeChat ≥ 2.5, функција повратног позива враћа алоцирани стринг (у WeeChat ≤ 2.4 је то био показивач на статички стринг).
+
+C пример:
+
+[source, C]
+----
+char *
+my_info_cb (const void *pointer, void *data, const char *info_name,
+ const char *arguments)
+{
+ /* ... */
+ return strdup ("some_info");
+}
+
+/* додаје инфо „my_info” */
+struct t_hook *my_info_hook = weechat_hook_info ("my_info",
+ "Нека инфо",
+ "Инфо о аргументима",
+ &my_info_cb, NULL, NULL);
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def hook_info(info_name: str, description: str, args_description: str,
+ callback: str, callback_data: str) -> str: ...
+
+# пример
+def my_info_cb(data, info_name, arguments):
+ return „some_info”
+
+hook = weechat.hook_info("my_info", "Нека инфо", "Инфо о аргументима",
+ "my_info_cb", "")
+----
+
+==== hook_info_hashtable
+
+_WeeChat ≥ 0.3.4, ажурирано у верзији 1.5._
+
+Качи се на информацију (функција повратног позива узима и враћа хеш табелу).
+
+Прототип:
+
+[source, C]
+----
+struct t_hook *weechat_hook_info_hashtable (const char *info_name,
+ const char *description,
+ const char *args_description,
+ const char *output_description,
+ struct t_hashtable *(*callback)(const void *pointer,
+ void *data,
+ const char *info_name,
+ struct t_hashtable *hashtable),
+ const void *callback_pointer,
+ void *callback_data);
+----
+
+Аргументи:
+
+* _info_name_: име инфо (дозвољава се приоритет, погледајте напомену о <<hook_priority,приоритетима>>)
+* _description_: опис
+* _args_description_: опис очекиване хеш табеле (није обавезан, може да буде NULL)
+* _output_description_: опис хеш табеле коју враћа функција повратног позива (није обавезно, може да буде NULL)
+* _callback_: функција која се позива када се затражи инфо, аргументи и повратна вредност су:
+** _const void *pointer_: показивач
+** _void *data_: показивач
+** _const char *info_name_: име инфо
+** _struct t_hashtable *hashtable_: хеш табела, зависно од информација
+** повратна вредност: тражена хеш табела
+* _callback_pointer_: показивач који се прослеђује функцији повратног позива када је позове програм WeeChat
+* _callback_data_: показивач који се прослеђује функцији повратног позива када је позове програм WeeChat; ако није NULL, алоцирала га је malloc (или нека слична функција) и аутоматски се ослобађа када се кука обрише
+
+Повратна вредност:
+
+* показивач на нову куку, NULL у случају грешке
+
+C пример:
+
+[source, C]
+----
+struct t_hashtable *
+my_info_hashtable_cb (const void *pointer, void *data, const char *info_name,
+ struct t_hashtable *hashtable)
+{
+ /* ... */
+ return pointer_to_new_hashtable;
+}
+
+/* додаје инфо "my_info_hashtable" */
+struct t_hook *my_info_hook = weechat_hook_info_hashtable ("my_info_hashtable",
+ "Нека инфо",
+ "Инфо о улазној хеш табели",
+ "Инфо о излазној хеш табели",
+ &my_info_hashtable_cb, NULL, NULL);
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def hook_info_hashtable(info_name: str, description: str, args_description: str,
+ output_description: str, callback: str, callback_data: str) -> str: ...
+
+# пример
+def my_info_hashtable_cb(data, info_name, hashtable):
+ return {"test_key": "test_value"}
+
+hook = weechat.hook_info_hashtable("my_info_hashtable", "Нека инфо",
+ "Инфо о улазној хеш табели",
+ "Инфо о излазној хеш табели",
+ "my_info_hashtable_cb", "")
+----
+
+==== hook_infolist
+
+_Ажурирано у верзији 1.5._
+
+Качи се на инфолисту: функција повратног позива ће вратити показивач на тражену инфолисту.
+
+Прототип:
+
+[source, C]
+----
+struct t_hook *weechat_hook_infolist (const char *infolist_name,
+ const char *description,
+ const char *pointer_description,
+ const char *args_description,
+ struct t_infolist *(*callback)(const void *pointer,
+ void *data,
+ const char *infolist_name,
+ void *obj_pointer,
+ const char *arguments),
+ const void *callback_pointer,
+ void *callback_data);
+----
+
+Аргументи:
+
+* _infolist_name_: име инфолисте (дозвољава се приоритет, погледајте напомену о <<hook_priority,приоритетима>>)
+* _description_: опис
+* _pointer_description_: опис показивача (није обавезно, може да буде NULL)
+* _args_description_: опис аргумената (није обавезан, може да буде NULL)
+* _callback_: функција која се позива када се затражи инфолиста, аргументи и повратна вредност су:
+** _const void *pointer_: показивач
+** _void *data_: показивач
+** _const char *infolist_name_: име инфолисте
+** _void *pointer_: показивач на објекат који инфолиста мора да врати (да би се добила само једна ставка у инфолисти)
+** _const char *arguments_: додатни аргументи, зависно од инфолисте
+** повратна вредност: тражена инфолиста
+* _callback_pointer_: показивач који се прослеђује функцији повратног позива када је позове програм WeeChat
+* _callback_data_: показивач који се прослеђује функцији повратног позива када је позове програм WeeChat; ако није NULL, алоцирала га је malloc (или нека слична функција) и аутоматски се ослобађа када се кука обрише
+
+Повратна вредност:
+
+* показивач на нову куку, NULL у случају грешке
+
+C пример:
+
+[source, C]
+----
+struct t_infolist *
+my_infolist_cb (const void *pointer, void *data, const char *infolist_name,
+ void *obj_pointer, const char *arguments)
+{
+ struct t_infolist *my_infolist;
+
+ /* изградња инфолисте */
+ /* ... */
+
+ return my_infolist;
+}
+
+/* додаје инфолисту "my_infolist" */
+struct t_hook *my_infolist = weechat_hook_infolist ("my_infolist",
+ "Инфолиста са неким подацима",
+ "Инфо о показивачу",
+ "Инфо о аргументима",
+ &my_infolist_cb, NULL, NULL);
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def hook_infolist(infolist_name: str, description: str, pointer_description: str,
+ args_description: str, callback: str, callback_data: str) -> str: ...
+
+# пример
+def my_infolist_cb(data, infolist_name, pointer, arguments):
+ # изградња инфолисте
+ # ...
+ return my_infolist
+
+hook = weechat.hook_infolist("my_infolist", "Инфолиста са неким подацима",
+ "Инфо о показивачу", "Инфо о аргументима",
+ "my_infolist_cb", "")
+----
+
+==== hook_hdata
+
+_Ажурирано у верзији 1.5._
+
+Качи се на hdata: функција повратног позива ће вратити показивач на тражени.
+
+Прототип:
+
+[source, C]
+----
+struct t_hook *weechat_hook_hdata (const char *hdata_name,
+ const char *description,
+ struct t_hdata *(*callback)(const void *pointer,
+ void *data,
+ const char *hdata_name),
+ const void *callback_pointer,
+ void *callback_data);
+----
+
+Аргументи:
+
+* _hdata_name_: име hdata (дозвољавају се приоритети, погледајте напомену о <<hook_priority,приоритетима>>)
+* _description_: опис
+* _callback_: функција која се позива када се затражи hdata, аргументи и повратна вредност су:
+** _const void *pointer_: показивач
+** _void *data_: показивач
+** _const char *hdata_name_: име hdata
+** повратна вредност: тражени hdata
+* _callback_pointer_: показивач који се прослеђује функцији повратног позива када је позове програм WeeChat
+* _callback_data_: показивач који се прослеђује функцији повратног позива када је позове програм WeeChat; ако није NULL, алоцирала га је malloc (или нека слична функција) и аутоматски се ослобађа када се кука обрише
+
+Повратна вредност:
+
+* показивач на нову куку, NULL у случају грешке
+
+C пример:
+
+[source, C]
+----
+struct t_hdata *
+my_hdata_cb (const void *pointer, void *data, const char *hdata_name)
+{
+ struct t_hdata *my_hdata;
+
+ /* изградња hdata */
+ /* ... */
+
+ return my_hdata;
+}
+
+/* додаје hdata "my_hdata" */
+struct t_hook *my_hdata = weechat_hook_hdata ("my_hdata",
+ "Hdata за моју структуру",
+ &my_hdata_cb, NULL, NULL);
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== hook_focus
+
+_Ажурирано у верзији 1.5._
+
+Качи се на фокус: догађај миша или тастер притиснут у режиму померања курсора.
+
+Прототип:
+
+[source, C]
+----
+struct t_hook *weechat_hook_focus (const char *area,
+ struct t_hashtable *(*callback)(const void *pointer,
+ void *data,
+ struct t_hashtable *info),
+ const void *callback_pointer,
+ void *callback_data);
+----
+
+Аргументи:
+
+* _area_: „chat” за површину чета (разговора), или име ставке траке (дозвољава се приоритет, погледајте напомену о <<hook_priority,приоритетима>>)
+* _callback_: функција која се позива када се направи фокус, аргументи и повратна вредност су:
+** _const void *pointer_: показивач
+** _void *data_: показивач
+** _struct t_hashtable *info_: хеш табела са инфо о фокусу у стрингови које су вратили остали позиви фокус функција повратног позива (са вишим приоритетом) (погледате табелу испод)
+** повратна вредност: или показивач на „info” (завршену хеш табелу), или показивач на нову хеш табелу (коју је креирала функција повратног позива, са кључевима и вредностима типа „стринг”), садржај ове нове хеш табеле ће се додати у _info_ за остале позиве фокус функције повратног позива
+* _callback_pointer_: показивач који се прослеђује функцији повратног позива када је позове програм WeeChat
+* _callback_data_: показивач који се прослеђује функцији повратног позива када је позове програм WeeChat; ако није NULL, алоцирала га је malloc (или нека слична функција) и аутоматски се ослобађа када се кука обрише
+
+[IMPORTANT]
+У случају гестикулације мишем, ваша функција повратног позива ће се позвати два пута: први пута када се тастер притисне (овде се површина увек подудара са вашом површином), а други пут када се тастер отпусти, па тада је могуће да се површина не подудара са вашом површином: зато у својој функцији повратног позива *увек* морате да тестирате да ли се површина подудара пре него што употребите инфо из хеш табеле.
+
+Садржај хеш табеле која се шаље функцији повратног позива (кључеви и вредности су типа „стринг”):
+
+[width="100%", cols="5,5,8,3", options="header"]
+|===
+| Кључ ^(1)^ | Опис | Примери вредности | Вредност ако нема
+
+| _x | Колона на екрану. |
+ "0" ... "n" |
+
+| _y | Линија на екрану. |
+ "0" ... "n" |
+
+| _key | Догађај тастера или миша. |
+ "button1", "button2-gesture-left", ... |
+
+| _window | Показивач на прозор. |
+ "0x1234abcd" | ""
+
+| _window_number | Број прозора. |
+ "1" ... "n" | "*"
+
+| _buffer | Показивач на бафер. |
+ "0x1234abcd" | ""
+
+| _buffer_number | Број бафера. |
+ "1" ... "n" | "-1"
+
+| _buffer_plugin | Име додатка бафера. |
+ "core", "irc", ... | ""
+
+| _buffer_name | Име бафера. |
+ "weechat", "libera.#weechat", ... | ""
+
+| _buffer_full_name | Пуно име бафера. |
+ "core.weechat", "irc.libera.#weechat", ... | ""
+
+| _buffer_localvar_XXX ^(2)^ | Локалне променљиве бафера. |
+ any value | not set
+
+| _chat | Индикатор површине разговора. |
+ "0" or "1" | "0"
+
+| _chat_line | Показивач на линију _(WeeChat ≥ 1.2)_. |
+ "0x1234abcd" | ""
+
+| _chat_line_x | Колона у линији ^(3)^. |
+ "0" ... "n" | "-1"
+
+| _chat_line_y | Број линије ^(3)^. |
+ "0" ... "n" | "-1"
+
+| _chat_line_date | Датум/време линије. |
+ "1313237175" | "0"
+
+| _chat_line_date_printed | Датум/време линије ^(4)^. |
+ "1313237175" | "0"
+
+| _chat_line_time | Приказано време. |
+ "14:06:15" | ""
+
+| _chat_line_tags | Ознаке линије. |
+ "irc_privmsg,nick_flashy,log1" | ""
+
+| _chat_line_nick | Надимак линије. |
+ "FlashCode" | ""
+
+| _chat_line_prefix | Префикс линије. |
+ "@FlashCode" | ""
+
+| _chat_line_message | Порука линије. |
+ "Hello world!" | ""
+
+| _chat_word | Реч на (x,y). |
+ "Здраво" | ""
+
+| _chat_bol | Текст од почетка линије до (x-1, y). |
+ "Зд" | ""
+
+| _chat_eol | Тест од (x, y) до краја линије. |
+ "раво свете!" | ""
+
+| _bar_name | Име траке. |
+ "title", "nicklist", ... | ""
+
+| _bar_filling | Испуна траке. |
+ "horizontal", "vertical", ... | ""
+
+| _bar_item_name | Име ставке траке. |
+ "buffer_nicklist", "hotlist", ... | ""
+
+| _bar_item_line | Линија у ставки траке. |
+ "0" ... "n" | "-1"
+
+| _bar_item_col | Колона у ставки траке. |
+ "0" ... "n" | "-1"
+
+| _bar_window | Показивач на прозор траке _(WeeChat ≥ 2.9)_. |
+ "0x1234abcd" | ""
+|===
+
+[NOTE]
+^(1)^ Постоје исти кључеви са суфиксом „2” (тј: „_x2”, „_y2”, „_window2”, ...) са инфо о другој тачки (корисно је само за гестикулације мишем, како бисте знали где је отпуштен тастер миша). + ^(2)^ `XXX` је име локалне променљиве у баферу. + ^(3)^ Поставља се само за бафере са слободним садржајем. + ^(4)^ То је датум када је програм WeeChat додао линију у бафер (веће или једнако од „_chat_line_date”).
+
+Додатне инфо за ставку траке „buffer_nicklist”:
+
+[width="100%", cols="^1,^1,5", options="header"]
+|===
+| Додатак ^(1)^ | Кључ | Опис
+| irc | irc_nick | Показивач на IRC надимак _(WeeChat ≥ 3.0)_.
+| irc | irc_host | Хост за надимак (ако се зна).
+| weechat | nick | Име надимка.
+| weechat | prefix | Префикс за надимак.
+| weechat | group | Име групе.
+|===
+
+[NOTE]
+^(1)^ Име додатка које дефинише hook_focus за враћање инфо о овој ставки траке (на пример, ако је додатак „irc”, инфо о томе ће бити доступна само за irc бафере).
+
+Повратна вредност:
+
+* показивач на нову куку, NULL у случају грешке
+
+C пример:
+
+[source, C]
+----
+struct t_hashtable *
+my_focus_nicklist_cb (const void *pointer, void *data, struct t_hashtable *info)
+{
+ /* додавање стрингова у хеш табелу */
+ /* ... */
+
+ return info;
+}
+
+/* додаје фокус на nicklist */
+struct t_hook *my_focus = weechat_hook_focus ("buffer_nicklist",
+ &my_focus_nicklist_cb, NULL, NULL);
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def hook_focus(area: str, callback: str, callback_data: str) -> str: ...
+
+# пример
+def my_focus_nicklist_cb(data, info):
+ # изградња dict
+ # ...
+ return my_dict
+
+hook = weechat.hook_focus("buffer_nicklist", "my_focus_nicklist_cb", "")
+----
+
+==== hook_set
+
+_WeeChat ≥ 0.3.9 (скрипте: WeeChat ≥ 0.4.3)._
+
+Поставља стринг вредност особине куке.
+
+Прототип:
+
+[source, C]
+----
+void weechat_hook_set (struct t_hook *hook, const char *property,
+ const char *value);
+----
+
+Аргументи:
+
+* _hook_: нешто за шта се прикачила „weechat_hook_xxx()”
+* _property_: име особине (погледајте табелу испод)
+* _value_: нова вредност за особину
+
+Особине:
+
+[width="100%", cols="^2,2,2,5", options="header"]
+|===
+| Име | Тип куке | Вредност | Опис
+
+| subplugin | било који тип | било који стринг |
+ Име под додатка (обично је то име скрипте које се приказује у
+ `/help команда` за куку типа _command_).
+
+| stdin +
+ _(WeeChat ≥ 0.4.3)_ |
+ _process_, _process_hashtable_ | било који стринг |
+ Шаље податке на стандардни улаз (_stdin_) дете процеса.
+
+| stdin_close +
+ _(WeeChat ≥ 0.4.3)_ |
+ _process_, _process_hashtable_ | (не користи се) |
+ Затвара пајп који се користи за слање података на стандардни улаз (_stdin_) дете процеса.
+
+| signal +
+ _(WeeChat ≥ 1.0)_ |
+ _process_, _process_hashtable_ |
+ број сигнала или једно од следећих имена: `hup`, `int`, `quit`, `kill`, `term`,
+ `usr1`, `usr2` |
+ Шаље сигнал дете процесу.
+|===
+
+C пример:
+
+[source, C]
+----
+struct t_hook *my_command_hook =
+ weechat_hook_command ("abcd", "опис",
+ "args", "опис аргумената",
+ "", &my_command_cb, NULL, NULL);
+weechat_hook_set (my_command_hook, "subplugin", "test");
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def hook_set(hook: str, property: str, value: str) -> int: ...
+
+# пример
+def my_process_cb(data, command, return_code, out, err):
+ # ...
+ return weechat.WEECHAT_RC_OK
+
+hook = weechat.hook_process_hashtable("/путања/до/команде", {"stdin": "1"},
+ 20000, "my_process_cb", "")
+weechat.hook_set(hook, "stdin", "подаци који се шаљу на stdin дете процеса")
+weechat.hook_set(hook, "stdin_close", "") # није обавезно
+----
+
+==== unhook
+
+Откачи се са нечега на шта је прикачено.
+
+Прототип:
+
+[source, C]
+----
+void weechat_unhook (struct t_hook *hook);
+----
+
+Аргументи:
+
+* _hook_: нешто за шта се прикачила „weechat_hook_xxx()”
+
+C пример:
+
+[source, C]
+----
+struct t_hook *my_hook = weechat_hook_command ( /* ... */ );
+/* ... */
+weechat_unhook (my_hook);
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def unhook(hook: str) -> int: ...
+
+# пример
+weechat.unhook(my_hook)
+----
+
+==== unhook_all
+
+_Ажурирано у верзији 1.5._
+
+Откачи се са свега на шта се закачио текући додатак.
+
+Прототип:
+
+[source, C]
+----
+void weechat_unhook_all (const char *subplugin);
+----
+
+Аргументи:
+
+* _subplugin_: ако није NULL, откаче се само куке које имају постављен овај „subplugin” (овај аргумент није доступан у API скриптовања)
+
+C пример:
+
+[source, C]
+----
+weechat_unhook_all (NULL);
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def unhook_all() -> int: ...
+
+# пример
+weechat.unhook_all()
+----
+
+[[buffers]]
+=== Бафери
+
+Функције за креирање/упит/затварање бафера.
+
+==== buffer_new
+
+_Ажурирано у верзији 1.5._
+
+Отвара нови бафер.
+
+Прототип:
+
+[source, C]
+----
+struct t_gui_buffer *weechat_buffer_new (const char *name,
+ int (*input_callback)(const void *pointer,
+ void *data,
+ struct t_gui_buffer *buffer,
+ const char *input_data),
+ const void *input_callback_pointer,
+ void *input_callback_data,
+ int (*close_callback)(const void *pointer,
+ void *data,
+ struct t_gui_buffer *buffer),
+ const void *close_callback_pointer,
+ void *close_callback_data);
+----
+
+Аргументи:
+
+* _name_: име бафера (мора бити јединствено за додатак)
+* _input_callback_: функција која се позива када се унесе текст уноса за бафер, аргументи и повратна вредност су:
+** _const void *pointer_: показивач
+** _void *data_: показивач
+** _struct t_gui_buffer *buffer_: показивач на бафер
+** _const char *input_data_: подаци уноса
+** повратна вредност:
+*** _WEECHAT_RC_OK_
+*** _WEECHAT_RC_ERROR_
+* _input_callback_pointer_: показивач који се прослеђује функцији повратног позива када је позове програм WeeChat
+* _input_callback_data_: показивач који се прослеђује функцији повратног позива када је позове програм WeeChat; ако није NULL, алоцирала га је malloc (или нека слична функција) и аутоматски се ослобађа када се бафер затвори
+* _close_callback_: функција која се позива када се затвори бафер, аргументи и повратна вредност су:
+** _const void *pointer_: показивач
+** _void *data_: показивач
+** _struct t_gui_buffer *buffer_: показивач на бафер
+** повратна вредност:
+*** _WEECHAT_RC_OK_
+*** _WEECHAT_RC_ERROR_
+* _close_callback_pointer_: показивач који се прослеђује функцији повратног позива када је позове програм WeeChat
+* _close_callback_data_: показивач који се прослеђује функцији повратног позива када је позове програм WeeChat; ако није NULL, алоцирала га је malloc (или нека слична функција) и аутоматски се ослобађа када се затвори бафер
+
+Повратна вредност:
+
+* показивач на нови бафер, NULL у случају грешке
+
+C пример:
+
+[source, C]
+----
+int
+my_input_cb (const void *pointer, void *data,
+ struct t_gui_buffer *buffer, const char *input_data)
+{
+ weechat_printf (buffer, "Текст: %s", input_data);
+ return WEECHAT_RC_OK;
+}
+
+int
+my_close_cb (const void *pointer, void *data, struct t_gui_buffer *buffer)
+{
+ weechat_printf (NULL, "Затвориће се бафер ’%s’!",
+ weechat_buffer_get_string (buffer, "name"));
+ return WEECHAT_RC_OK;
+}
+
+struct t_gui_buffer *my_buffer = weechat_buffer_new ("my_buffer",
+ &my_input_cb, NULL, NULL,
+ &my_close_cb, NULL, NULL);
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def buffer_new(name: str, input_callback: str, input_callback_data: str,
+ close_callback: str, close_callback_data: str) -> str: ...
+
+# пример
+def my_input_cb(data, buffer, input_data):
+ weechat.prnt(buffer, "Текст: %s" % input_data)
+ return weechat.WEECHAT_RC_OK
+
+def my_close_cb(data, buffer):
+ weechat.prnt("", "Затвориће се бафер ’%s’!" % weechat.buffer_get_string(buffer, "name"))
+ return weechat.WEECHAT_RC_OK
+
+buffer = weechat.buffer_new("my_buffer", "my_input_cb", "", "my_close_cb", "")
+----
+
+==== current_buffer
+
+Враћа показивач на текући бафер (бафер који се приказује у текућем прозору).
+
+Прототип:
+
+[source, C]
+----
+struct t_gui_buffer *weechat_current_buffer ();
+----
+
+Повратна вредност:
+
+* показивач на текући бафер
+
+C пример:
+
+[source, C]
+----
+weechat_printf (weechat_current_buffer (), "Текст у текућем баферу");
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def current_buffer() -> str: ...
+
+# пример
+weechat.prnt(weechat.current_buffer(), "Текст у текућем баферу")
+----
+
+==== buffer_search
+
+_Ажурирано у верзији 1.0._
+
+Тражи бафер по додатку и/или имену.
+
+Прототип:
+
+[source, C]
+----
+struct t_gui_buffer *weechat_buffer_search (const char *plugin,
+ const char *name);
+----
+
+Аргументи:
+
+* _plugin_: име додатка, дозвољене су следеће специјалне вредности:
+** `+==+`: име које се користи је пуно име бафера (на пример: `irc.libera.#weechat` уместо `libera.#weechat`) _(WeeChat ≥ 1.0)_
+* _name_: име бафера, ако је NULL или празан стринг, враћа се текући бафер (бафер који се приказује у текућем прозору); ако име почиње са `(?i)`, претрага не прави разлику у величини слова _(WeeChat ≥ 1.0)_
+
+Повратна вредност:
+
+* показивач на пронађени бафер, или NULL ако се бафер не пронађе
+
+C примери:
+
+[source, C]
+----
+struct t_gui_buffer *buffer1 = weechat_buffer_search ("irc", "libera.#weechat");
+struct t_gui_buffer *buffer2 = weechat_buffer_search ("==", "irc.libera.#test"); /* WeeChat ≥ 1.0 */
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def buffer_search(plugin: str, name: str) -> str: ...
+
+# пример
+buffer = weechat.buffer_search("my_plugin", "my_buffer")
+----
+
+==== buffer_search_main
+
+Тражи главни бафер програма WeeChat (_core_ бафер, први бафер који се прикаже када се покреће програм WeeChat).
+
+Прототип:
+
+[source, C]
+----
+struct t_gui_buffer *weechat_buffer_search_main ();
+----
+
+Повратна вредност:
+
+* показивач на главни бафер програма WeeChat (_core_ бафер)
+
+C пример:
+
+[source, C]
+----
+struct t_gui_buffer *weechat_buffer = weechat_buffer_search_main ();
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def buffer_search_main() -> str: ...
+
+# пример
+buffer = weechat.buffer_search_main()
+----
+
+==== buffer_clear
+
+Чисти садржај бафера.
+
+Прототип:
+
+[source, C]
+----
+void weechat_buffer_clear (struct t_gui_buffer *buffer);
+----
+
+Аргументи:
+
+* _buffer_: показивач на бафер
+
+C пример:
+
+[source, C]
+----
+struct t_gui_buffer *my_buffer = weechat_buffer_search ("my_plugin",
+ "my_buffer");
+if (my_buffer)
+{
+ weechat_buffer_clear (my_buffer);
+}
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def buffer_clear(buffer: str) -> int: ...
+
+# пример
+buffer = weechat.buffer_search("my_plugin", "my_buffer")
+if buffer != "":
+ weechat.buffer_clear(buffer)
+----
+
+==== buffer_close
+
+Затвара бафер.
+
+Прототип:
+
+[source, C]
+----
+void weechat_buffer_close (struct t_gui_buffer *buffer);
+----
+
+Аргументи:
+
+* _buffer_: показивач на бафер
+
+C пример:
+
+[source, C]
+----
+struct t_gui_buffer *my_buffer = weechat_buffer_new ("my_buffer",
+ &my_input_cb, NULL,
+ &my_close_cb, NULL);
+/* ... */
+weechat_buffer_close (my_buffer);
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def buffer_close(buffer: str) -> int: ...
+
+# пример
+buffer = weechat.buffer_new("my_buffer", "my_input_cb", "", "my_close_cb", "")
+# ...
+weechat.buffer_close(buffer)
+----
+
+==== buffer_merge
+
+Спаја бафер у неки други бафер: оба бафера и даље постоје одвојено, али под истим бројем и програм WeeChat ће исписивати линије из оба бафера (мешане линије).
+
+Прототип:
+
+[source, C]
+----
+void weechat_buffer_merge (struct t_gui_buffer *buffer,
+ struct t_gui_buffer *target_buffer);
+----
+
+Аргументи:
+
+* _buffer_: показивач на бафер
+* _target_buffer_: циљни бафер, онај са којим се бафер спаја
+
+C пример:
+
+[source, C]
+----
+/* merge current buffer with weechat "core" buffer */
+weechat_buffer_merge (weechat_current_buffer (),
+ weechat_buffer_search_main ());
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def buffer_merge(buffer: str, target_buffer: str) -> int: ...
+
+# пример
+# спаја текући бафер са WeeChat „core” бафером
+weechat.buffer_merge(weechat.current_buffer(), weechat.buffer_search_main())
+----
+
+==== buffer_unmerge
+
+Издваја бафер из групе спојених бафера.
+
+Прототип:
+
+[source, C]
+----
+void weechat_buffer_unmerge (struct t_gui_buffer *buffer,
+ int number);
+----
+
+Аргументи:
+
+* _buffer_: показивач на бафер
+* _number_: циљни број за издвојени бафер, ако је < 1, онда ће се бафер померити на број _buffer_ + 1
+
+C пример:
+
+[source, C]
+----
+weechat_buffer_unmerge (weechat_current_buffer (), 1);
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def buffer_unmerge(buffer: str, number: int) -> int: ...
+
+# пример
+weechat.buffer_unmerge(weechat.current_buffer(), 1)
+----
+
+==== buffer_get_integer
+
+Враћа целобројну вредност особине бафера.
+
+Прототип:
+
+[source, C]
+----
+int weechat_buffer_get_integer (struct t_gui_buffer *buffer,
+ const char *property);
+----
+
+Аргументи:
+
+* _buffer_: показивач на бафер
+* _property_: име особине:
+** _number_: број бафера (почиње се од 1)
+** _layout_number_: број бафера сачуван у распореду
+** _layout_number_merge_order_: редослед у спајању за распоред
+** _short_name_is_set_: 1 ако је постављено кратко име, 0 ако није
+** _type_: тип бафера (0: форматиран, 1: слободни садржај)
+** _notify_: ниво обавештавања за бафер
+** _num_displayed_: број прозора који приказују бафер
+** _active_: 2 ако је то једини активни бафер (спојен), 1 ако је бафер активан, 0 ако је бафер спојен и није изабран
+** _hidden_: 1 ако је бафер скривен, у супротном 0 _(WeeChat ≥ 1.0)_
+** _zoomed_: 1 ако је бафер спојен и зумиран, у супротном 0 _(WeeChat ≥ 1.0)_
+** _print_hooks_enabled_: 1 ако су укључене print куке, у супротном 0
+** _day_change_: 1 ако су приказују поруке о промени дана, у супротном 0 _(WeeChat ≥ 0.4.3)_
+** _clear_: 1 ако бафер може да се очисти командом `/buffer clear`, у супротном 0 _(WeeChat ≥ 1.0)_
+** _filter_: 1 ако су у баферу укључени филтери, у успротном 0 _(WeeChat ≥ 1.0)_
+** _lines_hidden_: 1 ако је у баферу скривена бар једна линија (филтрирана), или 0 ако се приказују све линије
+** _prefix_max_length_: максимална дужина префикса у овом баферу
+** _time_for_each_line_: 1 ако се време приказује са сваку линију у баферу (подразумевано), у супротном 0
+** _nicklist_: 1 ако је укључена листа надимака, у супротном 0
+** _nicklist_case_sensitive_: 1 ако се у надимцима прави разлика у величини слова, у супротном 0
+** _nicklist_max_length_: максимална дужина надимка
+** _nicklist_display_groups_: 1 ако се приказују групе, у супротном 0
+** _nicklist_count_: број надимака и група у листи надимака
+** _nicklist_visible_count_: број приказаних надимака/група
+** _nicklist_groups_count_: број група у листи надимака
+** _nicklist_visible_groups_count_: број приказаних група
+** _nicklist_nicks_count_: број надимака у листи надимака
+** _nicklist_visible_nicks_count_: број приказаних надимака
+** _input_: 1 ако је укључен унос, у супротном 0
+** _input_get_unknown_commands_: 1 ако се непознате команде шаљу функцији повратног позива уноса, у супротном 0
+** _input_get_empty_: 1 ако се функцији повратног позива уноса шаље празан унос, у супротном 0
+** _input_multiline_: 1 ако се више линија шаље као једна порука функцији повратног позива уноса, у супротном 0
+** _input_size_: величина уноса (у бајтовима)
+** _input_length_: дужина уноса (број карактера)
+** _input_pos_: позиција курсора у баферу уноса
+** _input_1st_display_: први карактер приказан на екрану
+** _num_history_: број команди у историји
+** _text_search_: тип претраге текста:
+*** 0: у овом тренутку нема претраге
+*** 1: претрага уназад (смер: ка најстаријим порукама)
+*** 2: претрага унапред (смер: ка најновијим порукама)
+** _text_search_exact_: 1 ако претрага текста прави разлику у величини слова
+** _text_search_found_: 1 ако се текст пронађе, у супротном 0
+
+Повратна вредност:
+
+* целобројна вредност особине
+
+C пример:
+
+[source, C]
+----
+weechat_printf (NULL, "број мог бафера је: %d",
+ weechat_buffer_get_integer (my_buffer, "number"));
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def buffer_get_integer(buffer: str, property: str) -> int: ...
+
+# пример
+weechat.prnt("", "број мог бафера је: %d" % weechat.buffer_get_integer(my_buffer, "number"))
+----
+
+==== buffer_get_string
+
+Враћа стринг вредност особине бафера.
+
+Прототип:
+
+[source, C]
+----
+const char *weechat_buffer_get_string (struct t_gui_buffer *buffer,
+ const char *property);
+----
+
+Аргументи:
+
+* _buffer_: показивач на бафер
+* _property_: име особине:
+** _plugin_: име додатка који је креирао овај бафер („core” за главни бафер програма WeeChat)
+** _name_: име бафера
+** _full_name_: пуно име бафера („додатак.име”) _(WeeChat ≥ 0.3.7)_
+** _short_name_: кратко име бафера (напомена: користи се само за приказ и корисник може да га промени, ово не сме да се употребљава за проналажење имена бафера, уместо њега употребите _name_, _full_name_ или локалну променљиву _channel_)
+** _title_: наслов бафера
+** _input_: текст уноса
+** _text_search_input_: сачувани унос пре претраге текста
+** _highlight_words_: листа речи које се истичу
+** _highlight_regex_: POSIX проширени регуларни израз за истицање
+** _highlight_tags_restrict_: ограничава истицање само на поруке са наведеним ознакама
+** _highlight_tags_: истицање се форсира за поруке са наведеним ознакама
+** _hotlist_max_level_nicks_: максимални ниво вруће листе за неке надимке
+** _localvar_xxx_: враћа садржај локалне променљиве „xxx” (замените „xxx” са именом локалне променљиве коју желите да прочитате)
+
+Повратна вредност:
+
+* стринг вредност особине
+
+C пример:
+
+[source, C]
+----
+weechat_printf (NULL, "име / кратко име бафера су: %s / %s",
+ weechat_buffer_get_string (my_buffer, "name"),
+ weechat_buffer_get_string (my_buffer, "short_name"));
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def buffer_get_string(buffer: str, property: str) -> str: ...
+
+# пример
+weechat.prnt("", "име / кратко име бафера су: %s / %s"
+ % (weechat.buffer_get_string(my_buffer, "name"),
+ weechat.buffer_get_string(my_buffer, "short_name")))
+----
+
+==== buffer_get_pointer
+
+Враћа вредност показивача на особину бафера.
+
+Прототип:
+
+[source, C]
+----
+void *weechat_buffer_pointer (struct t_gui_buffer *buffer,
+ const char *property);
+----
+
+Аргументи:
+
+* _buffer_: показивач на бафер
+* _property_: име особине:
+** _plugin_: показивач на додатак који је креирао овај бафер (NULL за главни бафер програма WeeChat)
+** _highlight_regex_compiled_: компајлиран регуларни израз _highlight_regex_
+
+Повратна вредност:
+
+* вредност показивача на особину
+
+C пример:
+
+[source, C]
+----
+weechat_printf (NULL, "показивач на додатак мог бафера: %lx",
+ weechat_buffer_get_pointer (my_buffer, "plugin"));
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def buffer_get_pointer(buffer: str, property: str) -> str: ...
+
+# пример
+weechat.prnt("", "показивач на додатак мог бафера: %s" % weechat.buffer_get_pointer(my_buffer, "plugin"))
+----
+
+==== buffer_set
+
+Поставља стринг вредност особине бафера.
+
+Прототип:
+
+[source, C]
+----
+void weechat_buffer_set (struct t_gui_buffer *buffer, const char *property,
+ const char *value);
+----
+
+Аргументи:
+
+* _buffer_: показивач на бафер
+* _property_: име особине (погледајте табелу испод)
+* _value_: нова вредност за особину
+
+Особине:
+
+[width="100%", cols="^2,4,8", options="header"]
+|===
+| Име | Вредност | Опис
+
+| hotlist | "+", "-", WEECHAT_HOTLIST_LOW, WEECHAT_HOTLIST_MESSAGE,
+ WEECHAT_HOTLIST_PRIVATE, WEECHAT_HOTLIST_HIGHLIGHT, "-1" |
+ "+": укључује врућу листу (глобално подешавање, не користи се показивач на бафер) +
+ "-": искључује врућу листу (глобално подешавање, не користи се показивач на бафер) +
+ приоритет: бафер се на врућу листу додаје са овим приоритетом +
+ "-1": уклања бафер из вруће листе _(WeeChat ≥ 1.0)_.
+
+| completion_freeze | "0" или "1" |
+ "0": нема замрзавања довршавања (подразумевана вредност)
+ (глобално подешавање, не користи се показивач на бафер) +
+ "1": довршавање се не зауставља када се ажурира командна линија
+ (глобално подешавање, не користи се показивач на бафер).
+
+| unread | - |
+ Поставља маркер непрочитаних линија након последње линије бафера.
+
+| display | "1" или "auto" |
+ "1": прелазак на овај бафер у текућем прозору +
+ "auto": прелазак на овај бафер у текућем прозору, не ресетује се маркер прочитаних линија.
+
+| hidden +
+ _(WeeChat ≥ 1.0)_ | "0" или "1" |
+ "0": бафер се открива +
+ "1": бафер се скрива.
+
+| number | број |
+ Помера бафер на наведени број.
+
+| name | било који стринг |
+ Поставља ново име бафера.
+
+| short_name | било који стринг |
+ Поставља ново кратко име бафера.
+
+| type | "formatted" или "free" |
+ Поставља тип бафера: "formatted" (за приказ порука разговора), или "free" (за
+ слободни садржај); када је вредност "free", особина _clear_ се форсира на "0"
+ _(WeeChat ≥ 1.0)_.
+
+| notify | "0", "1", "2", "3" |
+ Поставља ниво обавештавања за овај бафер: "0" = никада се не додаје на врућу листу,
+ "1" = додаје само за истицања, "2" = додаје за истицања и поруке, "3" = додаје
+ за све поруке.
+
+| print_hooks_enabled | "0" или "1" |
+ "0" да се искључе print куке, "1" да се укључе (подразумевано за нови бафер).
+
+| day_change +
+ _(WeeChat ≥ 0.4.3)_ | "0" или "1" |
+ "0" да се скривају поруке о измени дана, "1" да се приказују
+ (подразумевано за нови бафер).
+
+| clear +
+ _(WeeChat ≥ 1.0)_ | "0" или "1" |
+ "0" да се спречи могућност да корисник очисти бафер командом `/buffer clear`,
+ "1" да се дозволи кориснику да очисти бафер (подразумевано за нови бафер)
+ (напомена: чак и када се постави на "0", бафер још увек може да се очисти
+ функцијом <<_buffer_clear,buffer_clear>>).
+
+| filter +
+ _(WeeChat ≥ 1.0)_ | "0" или "1" |
+ "0": искључује филтере у баферу +
+ "1": укључује филтере у баферу.
+
+| title | било који стринг |
+ Поставља нови наслов бафера.
+
+| time_for_each_line | "0" или "1" |
+ "0" да се скрива време у свим линијама бафера, "1" да се приказује у свим
+ линијама (подразумевано за нови бафер).
+
+| nicklist | "0" или "1" |
+ "0" да се листа надимака уклони из бафера, "1" да се у бафер дода листа надимака.
+
+| nicklist_case_sensitive | "0" или "1" |
+ "0" да листа надимака не прави разлику у величини слова, "1" да листа надимака
+ прави разлику у величини слова.
+
+| nicklist_display_groups | "0" или "1" |
+ "0" да се сакрију групе у листи надимака, "1" да се приказују групе у листи надимака.
+
+| highlight_words | "-" или листа речи раздвојених запетама |
+ "-" је специјална вредност која искључује било какво истицање у овом баферу, или
+ листа речи за истицање у баферу раздвојених запетама, на пример:
+ "abc,def,ghi".
+
+| highlight_words_add | листа речи раздвојених запетама |
+ Лист речи раздвојених запетама које се истичу у овом баферу, ове речи се
+ додају на постојеће речи које се истичу у баферу.
+
+| highlight_words_del | листа речи раздвојених запетама |
+ Лист речи раздвојених запетама које треба да се уклоне из речи које се истичу у овом баферу.
+
+| highlight_regex | било који стринг |
+ POSIX проширени регуларни израз за истицање.
+
+| highlight_tags_restrict | листа речи или ознака раздвојених запетама |
+ Ограничава истицање порука у овом баферу само на поруке са наведеним ознакама
+ (граничником „+” је могуће комбиновање више ознака у релацији логичко „и”, на
+ пример: "nick_toto+irc_action").
+
+| highlight_tags | листа речи или ознака раздвојених запетама |
+ Форсира истицање порука са наведеним ознакама у овом баферу (
+ (граничником „+” је могуће комбиновање више ознака у релацији логичко „и”, на
+ пример: "nick_toto+irc_action").
+
+| hotlist_max_level_nicks | листа „надимак:ниво” раздвојена запетама |
+ Листа надимака са максималним нивоом вруће листе раздвојених запетама за овај бафер
+ (ниво може бити: -1: никада у врућој листи, 0: низак, 1: порука, 2: приватна,
+ 3: истицање), на пример: „joe:2,mike:-1,robert:-1” (joe никада неће изазвати
+ истицање у баферу, mike и robert никада неће изменити врућу листу).
+
+| hotlist_max_level_nicks_add | листа „надимак:ниво” раздвојена запетама |
+ Листа надимака са максималним нивоом вруће листе раздвојених запетама, ови
+ надимци се додају на постојеће надимке у баферу.
+
+| hotlist_max_level_nicks_del | листа надимака раздвојених запетама |
+ Листа надимака раздвојених запетама који треба да се уклоне из максималних нивоа вруће листе.
+
+| key_bind_xxx | било који стринг |
+ Прави нову тастерску пречицу _xxx_, специфичну за овај бафер, вредност је команда
+ која се извршава за тај тастер.
+
+| key_unbind_xxx | - |
+ Уклања тастерску пречицу _xxx_ за овај бафер.
+
+| input | било који стринг |
+ Поставља нову вредност за унос у бафер.
+
+| input_pos | позиција |
+ Поставља позицију курсора у уносу бафера.
+
+| input_get_unknown_commands | "0" или "1" |
+ "0" да се за овај бафер искључе непознате команде (подразумевано понашање), "1" да
+ се прихвате непознате команде, на пример ако корисник откуца „/unknowncmd”, бафер ће
+ то да прихвати (без исписа грешке о непознатој команди).
+
+| input_get_empty | "0" или "1" |
+ "0" да се искључи празан унос у овај бафер (подразумевано понашање), "1" да се
+ прихвати празан унос.
+
+| input_multiline | "0" или "1" |
+ "0" да се овом баферу свака линија шаље одвојено (подразумевано понашање), "1" да
+ се више линија пошаље као једна порука.
+
+| localvar_set_xxx | било који стринг |
+ Поставља нову вредност локалне променљиве _xxx_ (променљива се креира ако не постоји).
+
+| localvar_del_xxx | - |
+ Уклања локалну променљиву _xxx_.
+|===
+
+C пример:
+
+[source, C]
+----
+/* искључивање вруће листе (за све бафере) */
+weechat_buffer_set (NULL, "hotlist", "-");
+
+/* поновно укључивање вруће листе */
+weechat_buffer_set (NULL, "hotlist", "+");
+
+/* промена имена бафера
+weechat_buffer_set (my_buffer, "name", "my_new_name");
+
+/* додавање нове локалне променљиве „toto” са вредности „abc” */
+weechat_buffer_set (my_buffer, "localvar_set_toto", "abc");
+
+/* уклањање локалне променљиве „toto” */
+weechat_buffer_set (my_buffer, "localvar_del_toto", "");
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def buffer_set(buffer: str, property: str, value: str) -> int: ...
+
+# примери
+
+# искључује врућу листу (за све бафере)
+weechat.buffer_set("", "hotlist", "-")
+
+# поново укључује врућу листу
+weechat.buffer_set("", "hotlist", "+")
+
+# промена имена бафера
+weechat.buffer_set(my_buffer, "name", "my_new_name")
+
+# додаје нову локалну променљиву „toto” са вредношћу „abc”
+weechat.buffer_set(my_buffer, "localvar_set_toto", "abc")
+
+# уклања локалну променљиву „toto”
+weechat.buffer_set(my_buffer, "localvar_del_toto", "")
+----
+
+==== buffer_set_pointer
+
+Поставља вредност показивача на особину бафера.
+
+Прототип:
+
+[source, C]
+----
+void weechat_buffer_set_pointer (struct t_gui_buffer *buffer, const char *property,
+ void *pointer);
+----
+
+Аргументи:
+
+* _buffer_: показивач на бафер
+* _property_: име особине:
+** _close_callback_: поставља функцију повратног позива затварања
+** _close_callback_data_: поставља податке за функцију повратног позива затварања
+** _input_callback_: поставља функцију повратног позива уноса
+** _input_callback_data_: поставља податке за функцију повратног позива уноса
+** _nickcmp_callback_: поставља функцију повратног позива за поређење надимака (ова функција повратног позива се зове када се у листи надимака тражи надимак) _(WeeChat ≥ 0.3.9)_
+** _nickcmp_callback_data_: поставља податке за функцију повратног позива за поређење надимака _(WeeChat ≥ 0.3.9)_
+* _pointer_: нова вредност показивача за особину
+
+Прототипи за функције повратног позива:
+
+[source, C]
+----
+int close_callback (const void *pointer, void *data,
+ struct t_gui_buffer *buffer);
+
+int input_callback (const void *pointer, void *data,
+ struct t_gui_buffer *buffer, const char *input_data);
+
+int nickcmp_callback (const void *pointer, void *data,
+ struct t_gui_buffer *buffer,
+ const char *nick1, const char *nick2);
+----
+
+C пример:
+
+[source, C]
+----
+int
+my_close_cb (const void *pointer, void *data, struct t_gui_buffer *buffer)
+{
+ /* ... */
+ return WEECHAT_RC_OK;
+}
+
+weechat_buffer_set_pointer (my_buffer, "close_callback", &my_close_cb);
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== buffer_string_replace_local_var
+
+Замењује локалне променљиве у стрингу својим вредностима, користећи бафер локалне променљиве.
+
+Прототип:
+
+[source, C]
+----
+char *weechat_buffer_string_replace_local_var (struct t_gui_buffer *buffer,
+ const char *string);
+----
+
+Аргументи:
+
+* _buffer_: показивач на бафер
+* _string_: стринг са текстом и локалним променљивама у формату „$пром”
+
+Повратна вредност:
+
+* стринг са вредностима локалних променљивих
+
+C пример:
+
+[source, C]
+----
+weechat_buffer_set (my_buffer, "localvar_set_toto", "abc");
+
+char *str = weechat_buffer_string_replace_local_var (my_buffer,
+ "тест са $toto");
+/* str садржи „тест са abc” */
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def buffer_string_replace_local_var(buffer: str, string: str) -> str: ...
+
+# пример
+weechat.buffer_set(my_buffer, "localvar_set_toto", "abc")
+str = weechat.buffer_string_replace_local_var(my_buffer, "тест са $toto")
+# str садржи „тест са abc”
+----
+
+==== buffer_match_list
+
+_WeeChat ≥ 0.3.5._
+
+Проверава да ли се бафер подудара са листом бафера.
+
+Прототип:
+
+[source, C]
+----
+int weechat_buffer_match_list (struct t_gui_buffer *buffer, const char *string);
+----
+
+Аргументи:
+
+* _buffer_: показивач на бафер
+* _string_: листа бафера раздвојених запетама:
+** `+*+` значи сви бафери
+** име које почиње са `+!+` се не узима у обзир
+** у имену је дозвољен џокер `+*+`
+
+Повратна вредност:
+
+* 1 ако се бафер подудара са листом бафера, 0 у супротном
+
+C пример:
+
+[source, C]
+----
+struct t_gui_buffer *buffer = weechat_buffer_search ("irc", "libera.#weechat");
+if (buffer)
+{
+ weechat_printf (NULL, "%d", weechat_buffer_match_list (buffer, "*")); /* 1 */
+ weechat_printf (NULL, "%d", weechat_buffer_match_list (buffer, "*,!*#weechat*")); /* 0 */
+ weechat_printf (NULL, "%d", weechat_buffer_match_list (buffer, "irc.libera.*")); /* 1 */
+ weechat_printf (NULL, "%d", weechat_buffer_match_list (buffer, "irc.oftc.*,python.*")); /* 0 */
+}
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def buffer_match_list(buffer: str, string: str) -> int: ...
+
+# пример
+buffer = weechat.buffer_search("irc", "libera.#weechat")
+if buffer:
+ weechat.prnt("", "%d" % weechat.buffer_match_list(buffer, "*")) # 1
+ weechat.prnt("", "%d" % weechat.buffer_match_list(buffer, "*,!*#weechat*")) # 0
+ weechat.prnt("", "%d" % weechat.buffer_match_list(buffer, "irc.libera.*")) # 1
+ weechat.prnt("", "%d" % weechat.buffer_match_list(buffer, "irc.oftc.*,python.*")) # 0
+----
+
+[[windows]]
+=== Прозори
+
+Функције за упите о прозорима.
+
+==== current_window
+
+Враћа показивач на текући прозор.
+
+Прототип:
+
+[source, C]
+----
+struct t_gui_window *weechat_current_window ();
+----
+
+Повратна вредност:
+
+* показивач на текући прозор
+
+C пример:
+
+[source, C]
+----
+struct t_gui_window *current_window = weechat_current_window ();
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def current_window() -> str: ...
+
+# пример
+current_window = weechat.current_window()
+----
+
+==== window_search_with_buffer
+
+_WeeChat ≥ 0.3.5._
+
+Враћа показивач на прозор који приказује бафер.
+
+Прототип:
+
+[source, C]
+----
+struct t_gui_window *weechat_window_search_with_buffer (struct t_gui_buffer *buffer);
+----
+
+Аргументи:
+
+* _buffer_: показивач на бафер
+
+Повратна вредност:
+
+* показивач на прозор који приказује бафер (NULL ако ниједан прозор не приказује бафер)
+
+C пример:
+
+[source, C]
+----
+weechat_printf (NULL,
+ "прозор који приказује core бафер: %lx",
+ weechat_window_search_with_buffer (weechat_buffer_search_main ()));
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def window_search_with_buffer(buffer: str) -> str: ...
+
+# пример
+weechat.prnt("", "прозор који приказује core бафер: %s"
+ % weechat.window_search_with_buffer(weechat.buffer_search_main()))
+----
+
+==== window_get_integer
+
+Враћа целобројну вредност особине прозора.
+
+Прототип:
+
+[source, C]
+----
+int weechat_window_get_integer (struct t_gui_window *window,
+ const char *property);
+----
+
+Аргументи:
+
+* _window_: показивач на прозор
+* _property_: име особине:
+** _number_: број прозора (почиње од 1)
+** _win_x_: X позиција прозора у терминалу (прва колона је 0)
+** _win_y_: Y позиција прозора у терминалу (прва линија је 0)
+** _win_width_: ширина прозора у карактерима
+** _win_height_: висина прозора у карактерима
+** _win_width_pct_: процентуална величина, у односу на родитељски прозор (на пример, 50 значи половина величине)
+** _win_height_pct_: процентуална величина, у односу на родитељски прозор (на пример, 50 значи половина величине)
+** _win_chat_x_: X позиција прозора разговора у терминалу (прва колона је 0)
+** _win_chat_y_: Y позиција прозора разговора у терминалу (прва линија је 0)
+** _win_chat_width_: ширина прозора за разговор у карактерима
+** _win_chat_height_: висина прозора за разговор у карактерима
+** _first_line_displayed_: 1 ако је на екрану приказана прва линија бафера, у супротном 0
+** _scrolling_: 1 ако је у прозору активно скроловање (не приказује се последња линија)
+** _lines_after_: број линија које се не приказују након последње приказане (када се скролује)
+
+Повратна вредност:
+
+* целобројна вредност особине
+
+C пример:
+
+[source, C]
+----
+weechat_printf (NULL, "current window is at position (x,y): (%d,%d)",
+ weechat_window_get_integer (weechat_current_window (), "win_x"),
+ weechat_window_get_integer (weechat_current_window (), "win_y"));
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def window_get_integer(window: str, property: str) -> int: ...
+
+# пример
+weechat.prnt("", "текући прозор је на позицији (x,y): (%d,%d)"
+ % (weechat.window_get_integer(weechat.current_window(), "win_x"),
+ weechat.window_get_integer(weechat.current_window(), "win_y")))
+----
+
+==== window_get_string
+
+Враћа стринг вредност особине прозора.
+
+[NOTE]
+Ова функција се сада не користи, резервисана је будућу верзију.
+
+Прототип:
+
+[source, C]
+----
+const char *weechat_window_get_string (struct t_gui_window *window,
+ const char *property);
+----
+
+Аргументи:
+
+* _window_: показивач на прозор
+* _property_: име особине
+
+Повратна вредност:
+
+* стринг вредност особине
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def window_get_string(window: str, property: str) -> str: ...
+----
+
+==== window_get_pointer
+
+Враћа вредност показивача на особину прозора.
+
+Прототип:
+
+[source, C]
+----
+void *weechat_window_get_pointer (struct t_gui_window *window,
+ const char *property);
+----
+
+Аргументи:
+
+* _window_: показивач на прозор
+* _property_: име особине:
+** _current_: показивач на текући прозор
+** _buffer_: показивач на бафер који се приказује у прозору
+
+Повратна вредност:
+
+* вредност показивача на особину
+
+C пример:
+
+[source, C]
+----
+weechat_printf (NULL,
+ "бафер који се приказује у текућем прозору: %lx",
+ weechat_window_get_pointer (weechat_current_window (), "buffer"));
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def window_get_pointer(window: str, property: str) -> str: ...
+
+# пример
+weechat.prnt("", "бафер који се приказује у текућем прозору: %s"
+ % weechat.window_get_pointer(weechat.current_window(), "buffer"))
+----
+
+==== window_set_title
+
+Поставља наслов за терминал.
+
+Прототип:
+
+[source, C]
+----
+void weechat_window_set_title (const char *title);
+----
+
+Аргументи:
+
+* _title_: нови наслов за терминал (NULL ако желите да ресетујете наслов); стринг се израчунава, тако да је могуће коришћење променљивих као што је `${info:version}` (погледајте <<_string_eval_expression,string_eval_expression>>)
+
+C пример:
+
+[source, C]
+----
+weechat_window_set_title ("овде иде нови наслов");
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def window_set_title(title: str) -> int: ...
+
+# пример
+weechat.window_set_title("овде иде нови наслов")
+----
+
+[[nicklist]]
+=== Листа надимака
+
+Функције за листу надимака бафера.
+
+==== nicklist_add_group
+
+Додаје групу у листу надимака.
+
+Прототип:
+
+[source, C]
+----
+struct t_gui_nick_group *weechat_nicklist_add_group (struct t_gui_buffer *buffer,
+ struct t_gui_nick_group *parent_group,
+ const char *name,
+ const char *color,
+ int visible);
+----
+
+Аргументи:
+
+* _buffer_: показивач на бафер
+* _parent_group_: показивач на родитеља групе, NULL ако група нема родитеља (корен листе надимака)
+* _name_: име групе
+* _color_: име опције боја:
+** Име WeeChat опције, на пример _weechat.color.nicklist_group_
+** поја са необавезном позадином, на пример _yellow_ или _yellow,red_
+** име боје траке:
+*** _bar_fg_: боја предњег плана траке
+*** _bar_delim_: боја граничника за траку
+*** _bar_bg_: боја позадине за траку
+* _visible_:
+** _1_: групе и подгрупе/надимци су видљиви
+** _0_: групе и подгрупе/надимци су скривени
+
+[NOTE]
+Име групе може да почне једном или две цифре, иза којих долази вертикална црта, па име групе. Када се на почетку наиђе на овакав стринг, он се користи за сортирање група у листи надимака. На пример, групе „1|test” и „2|abc” ће се приказати у том редоследу: прво „test”, па „abc”.
+
+Повратна вредност:
+
+* показивач на нову групу, NULL у случају грешке
+
+C пример:
+
+[source, C]
+----
+struct t_gui_nick_group *my_group =
+ weechat_nicklist_add_group (my_buffer,
+ my_parent_group,
+ "test_group",
+ "weechat.color.nicklist_group",
+ 1);
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def nicklist_add_group(buffer: str, parent_group: str, name: str, color: str, visible: int) -> str: ...
+
+# пример
+group = weechat.nicklist_add_group(my_buffer, my_parent_group, "test_group",
+ "weechat.color.nicklist_group", 1)
+----
+
+==== nicklist_search_group
+
+Тражи групу у листи надимака.
+
+Прототип:
+
+[source, C]
+----
+struct t_gui_nick_group *weechat_nicklist_search_group (struct t_gui_buffer *buffer,
+ struct t_gui_nick_group *from_group,
+ const char *name);
+----
+
+Аргументи:
+
+* _buffer_: показивач на бафер
+* _from_group_: тражи само од ове групе, ако је NULL, онда се претражује цела листа надимака
+* _name_: име групе која се тражи
+
+Повратна вредност:
+
+* показивач на пронађену групу, NULL ако се не пронађе
+
+C пример:
+
+[source, C]
+----
+struct t_gui_nick_group *ptr_group = weechat_nicklist_search_group (my_buffer,
+ NULL, "test_group");
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def nicklist_search_group(buffer: str, from_group: str, name: str) -> str: ...
+
+# пример
+group = weechat.nicklist_search_group(my_buffer, "", "test_group")
+----
+
+==== nicklist_add_nick
+
+Додаје надимак у групу.
+
+Прототип:
+
+[source, C]
+----
+struct t_gui_nick_group *weechat_nicklist_add_nick (struct t_gui_buffer *buffer,
+ struct t_gui_nick_group *group,
+ const char *name,
+ const char *color,
+ const char *prefix,
+ const char *prefix_color,
+ int visible);
+----
+
+Аргументи:
+
+* _buffer_: показивач на бафер
+* _group_: показивач на групу
+* _name_: име надимка
+* _color_: име опције боја:
+*** Име WeeChat опције (из weechat.color.xxx), на пример _chat_delimiters_
+*** поја са необавезном позадином, на пример _yellow_ или _yellow,red_
+*** име боје траке:
+**** _bar_fg_: боја предњег плана траке
+**** _bar_delim_: боја граничника за траку
+**** _bar_bg_: боја позадине за траку
+* _prefix_: префикс који се приказује испред надимка
+* _prefix_color_: име опције боја:
+** Име WeeChat опције (из weechat.color.xxx), на пример _chat_delimiters_
+** поја са необавезном позадином, на пример _yellow_ или _yellow,red_
+** име боје траке:
+*** _bar_fg_: боја предњег плана траке
+*** _bar_delim_: боја граничника за траку
+*** _bar_bg_: боја позадине за траку
+* _visible_:
+** _1_: надимак је видљив
+** _0_: надимак је скривен
+
+Повратна вредност:
+
+* показивач на нови надимак, NULL у случају грешке
+
+C пример:
+
+[source, C]
+----
+struct t_gui_nick *my_nick =
+ weechat_nicklist_add_nick (my_buffer, my_group,
+ "test_nick",
+ (nick_away) ? "weechat.color.nicklist_away" : "bar_fg",
+ "@", "lightgreen",
+ 1);
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def nicklist_add_nick(buffer: str, group: str, name: str, color: str, prefix: str, prefix_color: str, visible: int) -> str: ...
+
+# пример
+if nick_away:
+ color = "weechat.color.nicklist_away"
+else:
+ color = "bar_fg"
+nick = weechat.nicklist_add_nick(my_buffer, my_group, "test_nick", color, "@", "lightgreen", 1)
+----
+
+==== nicklist_search_nick
+
+Тражи надимак у листи надимака.
+
+Прототип:
+
+[source, C]
+----
+struct t_gui_nick *weechat_nicklist_search_nick (struct t_gui_buffer *buffer,
+ struct t_gui_nick_group *from_group,
+ const char *name);
+----
+
+Аргументи:
+
+* _buffer_: показивач на бафер
+* _from_group_: тражи само од ове групе, ако је NULL, онда се претражује цела листа надимака
+* _name_: име надимка који се тражи
+
+Повратна вредност:
+
+* показивач на пронађени надимак, NULL ако се не пронађе
+
+C пример:
+
+[source, C]
+----
+struct t_gui_nick *ptr_nick = weechat_nicklist_search_nick (my_buffer,
+ NULL, "test_nick");
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def nicklist_search_nick(buffer: str, from_group: str, name: str) -> str: ...
+
+# пример
+nick = weechat.nicklist_search_nick(my_buffer, "", "test_nick")
+----
+
+==== nicklist_remove_group
+
+Уклања групу из листе надимака.
+
+Прототип:
+
+[source, C]
+----
+void weechat_nicklist_remove_group (struct t_gui_buffer *buffer,
+ struct t_gui_nick_group *group);
+----
+
+Аргументи:
+
+* _buffer_: показивач на бафер
+* _group_: показивач на групу која треба да се уклони (уклониће се и све подгрупе/надимци)
+
+C пример:
+
+[source, C]
+----
+weechat_nicklist_remove_group (my_buffer, my_group);
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def nicklist_remove_group(buffer: str, group: str) -> int: ...
+
+# пример
+weechat.nicklist_remove_group(my_buffer, my_group)
+----
+
+==== nicklist_remove_nick
+
+Уклања надимак из листе надимака.
+
+Прототип:
+
+[source, C]
+----
+void weechat_nicklist_remove_nick (struct t_gui_buffer *buffer,
+ struct t_gui_nick *nick);
+----
+
+Аргументи:
+
+* _buffer_: показивач на бафер
+* _nick_: показивач на надимак који треба да се уклони
+
+C пример:
+
+[source, C]
+----
+weechat_nicklist_remove_nick (my_buffer, my_nick);
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def nicklist_remove_nick(buffer: str, nick: str) -> int: ...
+
+# пример
+weechat.nicklist_remove_nick(my_buffer, my_nick)
+----
+
+==== nicklist_remove_all
+
+Уклања све групе/надимке из листе надимака.
+
+Прототип:
+
+[source, C]
+----
+void weechat_nicklist_remove_all (struct t_gui_buffer *buffer);
+----
+
+Аргументи:
+
+* _buffer_: показивач на бафер
+
+C пример:
+
+[source, C]
+----
+weechat_nicklist_remove_all (my_buffer);
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def nicklist_remove_all(buffer: str) -> int: ...
+
+# пример
+weechat.nicklist_remove_all(my_buffer)
+----
+
+==== nicklist_get_next_item
+
+_WeeChat ≥ 0.3.7._
+
+Враћа наредну групу или надимак из листе надимака (углавном се користи код приказа листе надимака).
+
+Прототип:
+
+[source, C]
+----
+void weechat_nicklist_get_next_item (struct t_gui_buffer *buffer,
+ struct t_gui_nick_group **group,
+ struct t_gui_nick **nick);
+----
+
+Аргументи:
+
+* _buffer_: показивач на бафер
+* _group_: показивач на показивач групе
+* _nick_: показивач на показивач надимка
+
+C пример:
+
+[source, C]
+----
+struct t_gui_nick_group *ptr_group;
+struct t_gui_nick *ptr_nick;
+
+ptr_group = NULL;
+ptr_nick = NULL;
+weechat_nicklist_get_next_item (buffer, &ptr_group, &ptr_nick);
+while (ptr_group || ptr_nick)
+{
+ if (ptr_nick)
+ {
+ /* надимак */
+ /* ... */
+ }
+ else
+ {
+ /* група */
+ /* ... */
+ }
+ weechat_nicklist_get_next_item (buffer, &ptr_group, &ptr_nick);
+}
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== nicklist_group_get_integer
+
+_WeeChat ≥ 0.3.4._
+
+Враћа целобројну вредност особине групе.
+
+Прототип:
+
+[source, C]
+----
+int weechat_nicklist_group_get_integer (struct t_gui_buffer *buffer,
+ struct t_gui_nick_group *group,
+ const char *property);
+----
+
+Аргументи:
+
+* _buffer_: показивач на бафер
+* _group_: показивач на групу
+* _property_: име особине:
+** _visible_: 1 ако је група видљива, у супротном 0
+** _level_: ниво групе (корен је 0)
+
+Повратна вредност:
+
+* целобројна вредност особине
+
+C пример:
+
+[source, C]
+----
+int visible = weechat_nicklist_group_get_integer (buffer, group, "visible");
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def nicklist_group_get_integer(buffer: str, group: str, property: str) -> int: ...
+
+# пример
+visible = weechat.nicklist_group_get_integer(buffer, group, "visible")
+----
+
+==== nicklist_group_get_string
+
+_WeeChat ≥ 0.3.4._
+
+Враћа стринг вредност особине групе.
+
+Прототип:
+
+[source, C]
+----
+const char *weechat_nicklist_group_get_string (struct t_gui_buffer *buffer,
+ struct t_gui_nick_group *group,
+ const char *property);
+----
+
+Аргументи:
+
+* _buffer_: показивач на бафер
+* _group_: показивач на групу
+* _property_: име особине:
+** _name_: име групе
+** _color_: боја групе у листи надимака
+
+Повратна вредност:
+
+* стринг вредност особине
+
+C пример:
+
+[source, C]
+----
+const char *color = weechat_nicklist_group_get_string (buffer, group, "color");
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def nicklist_group_get_string(buffer: str, group: str, property: str) -> str: ...
+
+# пример
+color = weechat.nicklist_group_get_string(buffer, group, "color")
+----
+
+==== nicklist_group_get_pointer
+
+_WeeChat ≥ 0.3.4._
+
+Враћа вредност показивача на особину групе.
+
+Прототип:
+
+[source, C]
+----
+void *weechat_nicklist_group_get_pointer (struct t_gui_buffer *buffer,
+ struct t_gui_nick_group *group,
+ const char *property);
+----
+
+Аргументи:
+
+* _buffer_: показивач на бафер
+* _group_: показивач на групу
+* _property_: име особине:
+** _parent_: показивач на родитељску групу
+
+Повратна вредност:
+
+* вредност показивача на особину
+
+C пример:
+
+[source, C]
+----
+struct t_gui_nick_group *parent = weechat_nicklist_group_get_pointer (buffer, group, "parent");
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def nicklist_group_get_pointer(buffer: str, group: str, property: str) -> str: ...
+
+# пример
+parent = weechat.nicklist_group_get_pointer(buffer, group, "parent")
+----
+
+==== nicklist_group_set
+
+_WeeChat ≥ 0.3.4._
+
+Поставља стринг вредност особине групе.
+
+Прототип:
+
+[source, C]
+----
+void weechat_nicklist_group_set (struct t_gui_buffer *buffer,
+ struct t_gui_nick_group *group,
+ const char *property,
+ const char *value);
+----
+
+Аргументи:
+
+* _buffer_: показивач на бафер
+* _group_: показивач на групу
+* _property_: име особине (погледајте табелу испод)
+* _value_: нова вредност за особину
+
+Особине:
+
+[width="100%", cols="^2,4,8", options="header"]
+|===
+| Име | Вредност | Опис
+
+| color | Име опције WeeChat боје |
+ Погледајте аргумент „color” функције <<_nicklist_add_group,nicklist_add_group>>.
+
+| visible | "0", "1" |
+ "0" = скривена група, "1" = видљива група.
+|===
+
+C примери:
+
+[source, C]
+----
+/* мења боју групе на "bar_fg" */
+weechat_nicklist_group_set (buffer, group, "color", "bar_fg");
+
+/* мења боју групе на жуту */
+weechat_nicklist_group_set (buffer, group, "color", "yellow");
+
+/* скрива групу у листи надимака */
+weechat_nicklist_group_set (buffer, group, "visible", "0");
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def nicklist_group_set(buffer: str, group: str, property: str, value: str) -> int: ...
+
+# примери
+
+# мења боју групе на "bar_fg"
+weechat.nicklist_group_set(buffer, group, "color", "bar_fg")
+
+# мења боју групе на жуту
+weechat.nicklist_group_set(buffer, group, "color", "yellow")
+
+# скрива групу у листи надимака
+weechat.nicklist_group_set(buffer, group, "visible", "0")
+----
+
+==== nicklist_nick_get_integer
+
+_WeeChat ≥ 0.3.4._
+
+Враћа целобројну вредност особине надимка.
+
+Прототип:
+
+[source, C]
+----
+int weechat_nicklist_nick_get_integer (struct t_gui_buffer *buffer,
+ struct t_gui_nick *nick,
+ const char *property);
+----
+
+Аргументи:
+
+* _buffer_: показивач на бафер
+* _nick_: показивач на надимак
+* _property_: име особине:
+** _visible_: 1 ако је надимак видљив, у супротном 0
+
+Повратна вредност:
+
+* целобројна вредност особине
+
+C пример:
+
+[source, C]
+----
+int visible = weechat_nicklist_nick_get_integer (buffer, nick, "visible");
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def nicklist_nick_get_integer(buffer: str, nick: str, property: str) -> int: ...
+
+# пример
+visible = weechat.nicklist_nick_get_integer(buffer, nick, "visible")
+----
+
+==== nicklist_nick_get_string
+
+_WeeChat ≥ 0.3.4._
+
+Враћа стринг вредност особине надимка.
+
+Прототип:
+
+[source, C]
+----
+const char *weechat_nicklist_nick_get_string (struct t_gui_buffer *buffer,
+ struct t_gui_nick *nick,
+ const char *property);
+----
+
+Аргументи:
+
+* _buffer_: показивач на бафер
+* _nick_: показивач на надимак
+* _property_: име особине:
+** _name_: име надимка
+** _color_: боја надимка у листи надимака
+** _prefix_: префикс надимка
+** _prefix_color_: боја префикса у листи надимака
+
+Повратна вредност:
+
+* стринг вредност особине
+
+C пример:
+
+[source, C]
+----
+const char *color = weechat_nicklist_nick_get_string (buffer, nick, "color");
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def nicklist_nick_get_string(buffer: str, nick: str, property: str) -> str: ...
+
+# пример
+color = weechat.nicklist_nick_get_string(buffer, nick, "color")
+----
+
+==== nicklist_nick_get_pointer
+
+_WeeChat ≥ 0.3.4._
+
+Враћа вредност показивача на особину надимка.
+
+Прототип:
+
+[source, C]
+----
+void *weechat_nicklist_nick_get_pointer (struct t_gui_buffer *buffer,
+ struct t_gui_nick *nick,
+ const char *property);
+----
+
+Аргументи:
+
+* _buffer_: показивач на бафер
+* _nick_: показивач на надимак
+* _property_: име особине:
+** _group_: показивач на групу у којој се налази овај надимак
+
+Повратна вредност:
+
+* вредност показивача на особину
+
+C пример:
+
+[source, C]
+----
+struct t_gui_nick_group *group = weechat_nicklist_nick_get_pointer (buffer, nick, "group");
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def nicklist_nick_get_pointer(buffer: str, nick: str, property: str) -> str: ...
+
+# пример
+group = weechat.nicklist_nick_get_pointer(buffer, nick, "group")
+----
+
+==== nicklist_nick_set
+
+_WeeChat ≥ 0.3.4._
+
+Поставља стринг вредност особине надимка.
+
+Прототип:
+
+[source, C]
+----
+void weechat_nicklist_nick_set (struct t_gui_buffer *buffer,
+ struct t_gui_nick *nick,
+ const char *property,
+ const char *value);
+----
+
+Аргументи:
+
+* _buffer_: показивач на бафер
+* _nick_: показивач на надимак
+* _property_: име особине (погледајте табелу испод)
+* _value_: нова вредност за особину
+
+Особине:
+
+[width="100%", cols="^2,4,8", options="header"]
+|===
+| Име | Вредност | Опис
+
+| color | име опције WeeChat боје |
+ Погледајте аргумент „color” функције <<_nicklist_add_nick,nicklist_add_nick>>.
+
+| prefix | било који стринг |
+ Префикс надимка.
+
+| prefix_color | име опције WeeChat боје |
+ Погледајте аргумент „prefix_color” функције <<_nicklist_add_nick,nicklist_add_nick>>.
+
+| visible | "0", "1" |
+ "0" = скривени надимак, "1" = видљиви надимак.
+|===
+
+C примери:
+
+[source, C]
+----
+/* мења боју надимка у цијан */
+weechat_nicklist_nick_set (buffer, nick, "color", "cyan");
+
+/* мења префикс на „+” */
+weechat_nicklist_nick_set (buffer, nick, "prefix", "+");
+
+/* мења боју префикса у жуту */
+weechat_nicklist_nick_set (buffer, nick, "prefix_color", "yellow");
+
+/* скрива надимак у листи надимака */
+weechat_nicklist_nick_set (buffer, nick, "visible", "0");
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def nicklist_nick_set(buffer: str, nick: str, property: str, value: str) -> int: ...
+
+# примери
+
+# мења боју надимка у цијан
+weechat.nicklist_nick_set(buffer, nick, "color", "cyan")
+
+# мења префикс у „+”
+weechat.nicklist_nick_set(buffer, nick, "prefix", "+")
+
+# мења боју префикса у жуту
+weechat.nicklist_nick_set(buffer, nick, "prefix_color", "yellow")
+
+# скрива надимак у листи надимака
+weechat.nicklist_nick_set(buffer, nick, "visible", "0")
+----
+
+[[bars]]
+=== Траке
+
+Функције за траке.
+
+==== bar_item_search
+
+Тражи ставку траке.
+
+Прототип:
+
+[source, C]
+----
+struct t_gui_bar_item *weechat_bar_item_search (const char *name);
+----
+
+Аргументи:
+
+* _name_: име ставке траке
+
+Повратна вредност:
+
+* показивач на пронађену ставку траке, NULL ако се ставка траке не пронађе
+
+C пример:
+
+[source, C]
+----
+struct t_gui_bar_item *bar_item = weechat_bar_item_search ("myitem");
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def bar_item_search(name: str) -> str: ...
+
+# пример
+bar_item = weechat.bar_item_search("myitem")
+----
+
+==== bar_item_new
+
+_Ажурирано у верзијама 0.4.2, 1.5._
+
+Креира нову ставку траке.
+
+Прототип:
+
+[source, C]
+----
+struct t_gui_bar_item *weechat_bar_item_new (const char *name,
+ char *(*build_callback)(const void *pointer,
+ void *data,
+ struct t_gui_bar_item *item,
+ struct t_gui_window *window,
+ struct t_gui_buffer *buffer,
+ struct t_hashtable *extra_info),
+ const void *build_callback_pointer,
+ void *build_callback_data);
+----
+
+Аргументи:
+
+* _name_: име ставке траке
+* _build_callback_: функција која се позива када се изгради нова ставка траке, аргументи и повратна вредност су:
+** _const void *pointer_: показивач
+** _void *data_: показивач
+** _struct t_gui_bar_item *item_: показивач на ставку
+** _struct t_gui_window *window_: показивач на прозор (NULL када се позове за корену траку)
+** _struct t_gui_buffer *buffer_: бафер који се приказује у прозору (ако је прозор NULL, онда је то текући бафер) или бафер наведен у ставки траке према синтакси: „@бафер:ставка” _(WeeChat ≥ 0.4.2)_
+** _struct t_hashtable *extra_info_: увек је NULL (аргумент је резервисан за будуће верзије) _(WeeChat ≥ 0.4.2)_
+** повратна вредност: садржај ставке траке
+* _build_callback_pointer_: показивач који се прослеђује функцији повратног позива изградње, када је позове програм WeeChat
+* _build_callback_data_: показивач који се прослеђује функцији повратног позива када је позове програм WeeChat; ако није NULL, алоцирала га је malloc (или нека слична функција) и аутоматски се ослобађа када се уклони ставка траке
+
+Повратна вредност:
+
+* показивач на нову ставку траке, NULL ако је дошло до грешке
+
+C пример:
+
+[source, C]
+----
+char *
+my_build_callback (const void *pointer, void *data,
+ struct t_gui_bar_item *item,
+ struct t_gui_window *window,
+ struct t_gui_buffer *buffer,
+ struct t_hashtable *extra_info)
+{
+ return strdup ("my content");
+}
+
+struct t_gui_bar_item *my_item = weechat_bar_item_new ("myitem",
+ &my_build_callback,
+ NULL, NULL);
+----
+
+Скрипта (Python):
+
+[IMPORTANT]
+Из разлога компатибилности за верзијама ≤ 0.4.1, подразумевана функција повратног позива има само 3 аргумента: _data_, _item_ и _window_ (нема _buffer_ и _extra_info_). + Ако желите да користите функцију повратног позива са свим аргументима, морате додати „(extra)” испред имена, погледајте пример испод (подржано је само у WeeChat ≥ 0.4.2).
+
+[source, python]
+----
+# прототип
+def bar_item_new(name: str, build_callback: str, build_callback_data: str) -> str: ...
+
+# пример (функција повратног позива без „buffer” и „extra_info”)
+def my_build_callback(data, item, window):
+ return "my content"
+
+bar_item = weechat.bar_item_new("myitem", "my_build_callback", "")
+
+# пример (функција повратног позива са свим аргументима, за WeeChat ≥ 0.4.2)
+def my_build_callback2(data, item, window, buffer, extra_info):
+ return "my content"
+
+bar_item2 = weechat.bar_item_new("(extra)myitem2", "my_build_callback2", "") # WeeChat ≥ 0.4.2
+----
+
+==== bar_item_update
+
+Ажурира садржај ставке траке, позивањем њене функције повратног позива изградње.
+
+Прототип:
+
+[source, C]
+----
+void weechat_bar_item_update (const char *name);
+----
+
+Аргументи:
+
+* _name_: име ставке траке
+
+C пример:
+
+[source, C]
+----
+weechat_bar_item_update ("myitem");
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def bar_item_update(name: str) -> int: ...
+
+# пример
+weechat.bar_item_update("myitem")
+----
+
+==== bar_item_remove
+
+Уклања ставку траке.
+
+Прототип:
+
+[source, C]
+----
+void weechat_bar_item_remove (struct t_gui_bar_item *item);
+----
+
+Аргументи:
+
+* _item_: показивач на ставку траке
+
+C пример:
+
+[source, C]
+----
+weechat_bar_item_remove (&my_item);
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def bar_item_remove(item: str) -> int: ...
+
+# пример
+weechat.bar_item_remove(myitem)
+----
+
+==== bar_search
+
+Тражи траку.
+
+Прототип:
+
+[source, C]
+----
+struct t_gui_bar *weechat_bar_search (const char *name);
+----
+
+Аргументи:
+
+* _name_: име траке
+
+Повратна вредност:
+
+* показивач на пронађену траку, NULL ако се трака не пронађе
+
+C пример:
+
+[source, C]
+----
+struct t_gui_bar *bar = weechat_bar_search ("mybar");
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def bar_search(name: str) -> str: ...
+
+# пример
+bar = weechat.bar_search("mybar")
+----
+
+==== bar_new
+
+_Ажурирано у верзији 2.9._
+
+Креира нову траку.
+
+Прототип:
+
+[source, C]
+----
+struct t_gui_bar *weechat_bar_new (const char *name,
+ const char *hidden,
+ const char *priority,
+ const char *type,
+ const char *condition,
+ const char *position,
+ const char *filling_top_bottom,
+ const char *filling_left_right,
+ const char *size,
+ const char *size_max,
+ const char *color_fg,
+ const char *color_delim,
+ const char *color_bg,
+ const char *color_bg_inactive,
+ const char *separator,
+ const char *items);
+----
+
+Аргументи:
+
+* _name_: име траке
+* _hidden_:
+** _on_: трака је скривена
+** _off_: трака је видљива
+* _priority_: приоритет траке (цео број)
+* _type_:
+** _root_: трака је приказана једном, ван прозора
+** _window_: трака се приказује у сваком прозору
+* _condition_: услов за приказивање траке:
+** _active_: трака се приказује само у активном прозору
+** _inactive_: трака се приказује само у неактивним прозорима
+** _nicklist_: трака се приказује у прозорима са листом надимака
+** израчунати услови: погледајте link:weechat_user.sr.html#bar_conditions[WeeChat Корисничко упутство / Услови трака].
+* _position_: _top_, _bottom_, _left_ или _right_
+* _filling_top_bottom_:
+** _horizontal_: ставке се попуњавају хоризонтално (размак након сваке ставке)
+** _vertical_: ставке се попуњавају вертикално (прелом линије након сваке ставке)
+** _columns_horizontal_: ставке се попуњавају хоризонтално, приказане по колонама
+** _columns_vertical_: ставке се попуњавају вертикално, приказане по колонама
+* _filling_left_right_:
+** _horizontal_: ставке се попуњавају хоризонтално (размак након сваке ставке)
+** _vertical_: ставке се попуњавају вертикално (прелом линије након сваке ставке)
+** _columns_horizontal_: ставке се попуњавају хоризонтално, приказане по колонама
+** _columns_vertical_: ставке се попуњавају вертикално, приказане по колонама
+* _size_: величина траке у карактерима (0 значи аутоматска величина)
+* _size_max_: максимална величина траке (0 значи без ограничења)
+* _color_fg_: боја текста у траци
+* _color_delim_: боја граничника у траци
+* _color_bg_: боја позадине траке
+* _color_bg_inactive_: боја позадине за траку прозора која се не приказује у активном прозору
+* _separator_:
+** _on_: трака има граничну линију са осталим прозорима/тракама
+** _off_: нема граничника
+* _items_: листа ставки у траци раздвојених запетама (за размак између ставки), или са „+” (за спојене ставке)
+
+Повратна вредност:
+
+* показивач на нову траку, NULL у случају грешке
+
+C пример:
+
+[source, C]
+----
+struct t_gui_bar *my_bar = weechat_bar_new ("mybar",
+ "off",
+ "100",
+ "window",
+ "",
+ "top",
+ "horizontal",
+ "vertical",
+ "0",
+ "5",
+ "default",
+ "cyan",
+ "blue",
+ "darkgray",
+ "off",
+ "time,buffer_number+buffer_name");
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def bar_new(name: str, hidden: str, priority: str, type: str, condition: str, position: str,
+ filling_top_bottom: str, filling_left_right: str, size: str, size_max: str,
+ color_fg: str, color_delim: str, color_bg: str, color_bg_inactive: str,
+ separator: str, items: str) -> str: ...
+
+# пример
+bar = weechat.bar_new("mybar", "off", "100", "window", "", "top", "horizontal", "vertical",
+ "0", "5", "default", "cyan", "blue", "darkgray", "off", "time,buffer_number+buffer_name")
+----
+
+[NOTE]
+У програму WeeChat верзије ≥ 2.9, у језику Ruby, 4 боје (color_fg, color_delim, color_bg, color_bg_inactive) морају да се наведу у низу од 4 стринга (услед ограничења језика Ruby од 15 аргумената по функцији), за више информација погледајте link:++weechat_scripting.sr.html#_ruby++[WeeChat водич за скриптовање].
+
+==== bar_set
+
+Поставља нову вредност особине траке.
+
+Прототип:
+
+[source, C]
+----
+int weechat_bar_set (struct t_gui_bar *bar, const char *property,
+ const char *value);
+----
+
+Аргументи:
+
+* _bar_: показивач на траку
+* _property_: name, hidden, priority, conditions, position, filling_top_bottom, filling_left_right, size, size_max, color_fg, color_delim, color_bg, separator, items (погледајте <<_bar_new,bar_new>>)
+* _value_: нова вредност за особину
+
+Повратна вредност:
+
+* 1 ако је нова вредност постављена, 0 у случају грешке
+
+C пример:
+
+[source, C]
+----
+weechat_bar_set (mybar, "position", "bottom");
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def bar_set(bar: str, property: str, value: str) -> int: ...
+
+# пример
+weechat.bar_set(my_bar, "position", "bottom")
+----
+
+==== bar_update
+
+Освежава садржај траке на екрану.
+
+Прототип:
+
+[source, C]
+----
+void weechat_bar_update (const char *name);
+----
+
+Аргументи:
+
+* _name_: име траке
+
+C пример:
+
+[source, C]
+----
+weechat_bar_update ("mybar");
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def bar_update(name: str) -> int: ...
+
+# пример
+weechat.bar_update("mybar")
+----
+
+==== bar_remove
+
+Уклања траку.
+
+Прототип:
+
+[source, C]
+----
+void weechat_bar_remove (struct t_gui_bar *bar);
+----
+
+Аргументи:
+
+* _bar_: показивач на траку
+
+C пример:
+
+[source, C]
+----
+weechat_bar_remove (mybar);
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def bar_remove(bar: str) -> int: ...
+
+# пример
+weechat.bar_remove(my_bar)
+----
+
+[[commands]]
+=== Команде
+
+Функције за извршавање WeeChat команди.
+
+==== command
+
+_Ажурирано у верзији 1.1._
+
+Извршава команду или шаље текст у бафер.
+
+Прототип:
+
+[source, C]
+----
+int weechat_command (struct t_gui_buffer *buffer, const char *command);
+----
+
+Аргументи:
+
+* _buffer_: показивач на бафер (команда се извршава у овом баферу, употребите NULL за текући бафер)
+* _command_: команда која се извршава (ако почиње са „/”), или текст који се шаље у бафер
+
+Повратна вредност _(WeeChat ≥ 1.1)_:
+
+* _WEECHAT_RC_OK_ ако је успешно
+* _WEECHAT_RC_ERROR_ ако је дошло до грешке
+
+C пример:
+
+[source, C]
+----
+int rc;
+rc = weechat_command (weechat_buffer_search ("irc", "libera.#weechat"),
+ "/whois FlashCode");
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def command(buffer: str, command: str) -> int: ...
+
+# пример
+rc = weechat.command(weechat.buffer_search("irc", "libera.#weechat"), "/whois FlashCode")
+----
+
+==== command_options
+
+_WeeChat ≥ 2.5._
+
+Извршава команду или шаље текст у бафер са опцијама.
+
+Прототип:
+
+[source, C]
+----
+int weechat_command_options (struct t_gui_buffer *buffer, const char *command,
+ struct t_hashtable *options);
+----
+
+Аргументи:
+
+* _buffer_: показивач на бафер (команда се извршава у овом баферу, употребите NULL за текући бафер)
+* _command_: команда која се извршава (ако почиње са „/”), или текст који се шаље у бафер
+* _options_: хеш табела са неким опцијама (кључеви и вредности морају бити стринг) (може да буде NULL):
+** _commands_: листа команди које смеју да се изврше током овог позива раздвојене запетама; за формат, погледајте функцију <<_string_match_list,string_match_list>>
+** _delay_: пауза за извршавање команде, у милисекундама
+
+Повратна вредност:
+
+* _WEECHAT_RC_OK_ ако је успешно
+* _WEECHAT_RC_ERROR_ ако је дошло до грешке
+
+C пример:
+
+[source, C]
+----
+/* дозвољава се било која команда одим /exec, команда се извршава у року од 2 секунде */
+int rc;
+struct t_hashtable *options = weechat_hashtable_new (8,
+ WEECHAT_HASHTABLE_STRING,
+ WEECHAT_HASHTABLE_STRING,
+ NULL,
+ NULL);
+weechat_hashtable_set (options, "commands", "*,!exec");
+weechat_hashtable_set (options, "delay", "2000");
+rc = weechat_command_options (NULL, "/some_command arguments", options);
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def command_options(buffer: str, command: str, options: Dict[str, str]) -> int: ...
+
+# пример: дозвољава се било која команда осим /exec
+rc = weechat.command("", "/some_command arguments", {"commands": "*,!exec"})
+----
+
+[[completion]]
+=== Довршавање
+
+Функције за довршавање командне линије.
+
+==== completion_new
+
+_WeeChat ≥ 2.9._
+
+Креира ново довршавање.
+
+Прототип:
+
+[source, C]
+----
+struct t_gui_completion *weechat_completion_new (struct t_gui_buffer *buffer);
+----
+
+Аргументи:
+
+* _buffer_: показивач на бафер
+
+Повратна вредност:
+
+* показивач на ново довршавање
+
+C пример:
+
+[source, C]
+----
+struct t_gui_completion *completion = weechat_completion_new (weechat_buffer_search_main ());
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def completion_new(buffer: str) -> str: ...
+
+# пример
+completion = weechat.completion_new(weechat.buffer_search_main())
+----
+
+==== completion_search
+
+_WeeChat ≥ 2.9._
+
+Тражи могуће речи на датој позицији у стрингу, у контексту довршавања.
+
+Прототип:
+
+[source, C]
+----
+int weechat_completion_search (struct t_gui_completion *completion, const char *data,
+ int position, int direction);
+----
+
+Аргументи:
+
+* _completion_: показивач на довршавање
+* _data_: стринг који треба да се доврши
+* _position_: индекс карактера у стрингу за довршавање (почиње од 0)
+* _direction_: 1 за наредно довршавање, -1 за претходно довршавање
+
+Повратна вредност:
+
+* 1 ако је све OK, 0 у случају грешке
+
+C пример:
+
+[source, C]
+----
+struct t_gui_completion *completion = weechat_completion_new (weechat_buffer_search_main ());
+if (weechat_completion_search (completion, "/help filt", 10, 1))
+{
+ /* ... */
+}
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def completion_search(completion: str, data: str, position: int, direction: int) -> int: ...
+
+# пример
+completion = weechat.completion_new(weechat.buffer_search_main())
+if weechat.completion_search(completion, "/help filt", 10, 1):
+ # ...
+----
+
+==== completion_get_string
+
+_WeeChat ≥ 2.9._
+
+Враћа особину довршавања као стринг.
+
+Прототип:
+
+[source, C]
+----
+const char *weechat_completion_get_string (struct t_gui_completion *completion,
+ const char *property);
+----
+
+Аргументи:
+
+* _completion_: показивач на довршавање
+* _property_: име особине:
+** _base_command_: команда која се користи за довршавање
+** _base_word_: реч која се довршава
+** _args_: аргументи команде (укључујући и базну реч)
+
+C пример:
+
+[source, C]
+----
+int
+my_completion_cb (const void *pointer, void *data, const char *completion_item,
+ struct t_gui_buffer *buffer,
+ struct t_gui_completion *completion)
+{
+ /* добијање аргумената команде */
+ const char *args = weechat_completion_get_string (completion, "args");
+
+ /* довршавање које зависи од args */
+ /* ... */
+
+ return WEECHAT_RC_OK;
+}
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def completion_get_string(completion: str, property: str) -> str: ...
+
+# пример
+def my_completion_cb(data, completion_item, buffer, completion):
+ # добавља аргументе команде
+ args = weechat.completion_get_string(completion, "args")
+ # довршавање у зависности од args
+ # ...
+ return weechat.WEECHAT_RC_OK
+----
+
+==== completion_list_add
+
+_WeeChat ≥ 2.9._
+
+Додаје реч за довршавање.
+
+Прототип:
+
+[source, C]
+----
+void weechat_completion_list_add (struct t_gui_completion *completion,
+ const char *word,
+ int nick_completion,
+ const char *where);
+----
+
+Аргументи:
+
+* _completion_: показивач на довршавање
+* _word_: реч која се додаје
+* _nick_completion_: 1 ако је реч надимак, у супротном 0
+* _where_: позиција у листи на коју ће се уметнути реч:
+** _WEECHAT_LIST_POS_SORT_: било која позиција, да листа остане сортирана
+** _WEECHAT_LIST_POS_BEGINNING_: почетак листе
+** _WEECHAT_LIST_POS_END_: крај листе
+
+C пример: погледајте <<_hook_completion,hook_completion>>.
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def completion_list_add(completion: str, word: str, nick_completion: int, where: str) -> int: ...
+
+# пример: погледајте функцију hook_completion
+----
+
+==== completion_free
+
+_WeeChat ≥ 2.9._
+
+Ослобађа меморију коју користи довршавање.
+
+Прототип:
+
+[source, C]
+----
+void weechat_completion_free (struct t_gui_completion *completion);
+----
+
+Аргументи:
+
+* _completion_: показивач на довршавање
+
+C пример:
+
+[source, C]
+----
+weechat_completion_free (completion);
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def completion_free(completion: str) -> int: ...
+
+# пример
+weechat.completion_free(completion)
+----
+
+[[network]]
+=== Мрежа
+
+Мрежне функције.
+
+==== network_pass_proxy
+
+Успоставља везу/аутентификацију са проксијем.
+
+[IMPORTANT]
+Ова функција је блокирајућа на позиву функције connect(), тако да једино сме да се позове из рачваног процеса па да не блокира програм WeeChat.
+
+Прототип:
+
+[source, C]
+----
+int weechat_network_pass_proxy (const char *proxy,
+ int sock,
+ const char *address,
+ int port);
+----
+
+Аргументи:
+
+* _proxy_: име проксија који треба да се користи
+* _sock_: сокет који треба да се користи
+* _address_: адреса (име хоста или IP адреса)
+* _port_: порт
+
+Повратна вредност:
+
+* 1 ако је веза OK, 0 у случају да је дошло до грешке
+
+C пример:
+
+[source, C]
+----
+if (weechat_network_pass_proxy ("my_proxy", sock, "irc.libera.chat", 6667))
+{
+ /* OK */
+}
+else
+{
+ /* грешка */
+}
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== network_connect_to
+
+_Ажурирано у верзији 0.4.3._
+
+Успоставља везу са удаљеним хостом.
+
+[IMPORTANT]
+Ова функција је блокирајућа на позиву функције connect(), тако да једино сме да се позове из рачваног процеса па да не блокира програм WeeChat.
+
+Прототип:
+
+[source, C]
+----
+int weechat_network_connect_to (const char *proxy,
+ struct sockaddr *address,
+ socklen_t address_length);
+----
+
+Аргументи:
+
+* _proxy_: име проксија који треба да се користи
+* _address_: адреса са којом се повезује (са портом)
+* _address_length_: дужина аргумента _address_
+
+Повратна вредност:
+
+* број сокета (>= 0) ако је веза OK, -1 у случају да је дошло до грешке
+
+C пример:
+
+[source, C]
+----
+struct sockaddr *addr;
+socklen_t length;
+int sock;
+
+/* алоцирање/постављање адресе и порта у _addr_, постављање _length_ */
+/* ... */
+
+sock = weechat_network_connect_to (NULL, addr, length);
+if (sock >= 0)
+{
+ /* OK */
+}
+else
+{
+ /* грешка */
+}
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+[[infos]]
+=== Информације
+
+Функције које враћају информације.
+
+==== info_get
+
+_Ажурирано у верзији 2.5._
+
+Враћа инфо као стринг, из програма WeeChat или из додатка.
+
+Прототип:
+
+[source, C]
+----
+char *weechat_info_get (const char *info_name, const char *arguments);
+----
+
+Аргументи:
+
+* _info_name_: име инфо који желите да прочитате (погледајте табелу испод)
+* _arguments_: аргументи тражене инфо (није обавезно, NULL у случају да није потребан аргумент)
+
+Повратна вредност:
+
+* стринг са траженом инфо, NULL у случају да је дошло до грешке (након употребе мора да се ослободи позивом „free”)
+
+[NOTE]
+У програму WeeChat ≥ 2.5, враћена вредност је алоцирани стринг (у WeeChat ≤ 2.4, то је био показивач на статички стринг).
+
+Информације:
+
+include::includes/autogen_api_infos.sr.adoc[tag=infos]
+
+C пример:
+
+[source, C]
+----
+char *version = weechat_info_get ("version", NULL);
+char *date = weechat_info_get ("date", NULL);
+weechat_printf (NULL, "Тренутна WeeChat верзија је: %s (компајлирана %s)",
+ version, date);
+if (version)
+ free (version);
+if (date)
+ free (date);
+
+char *weechat_config_dir = weechat_info_get ("weechat_config_dir", NULL);
+weechat_printf (NULL, "WeeChat конфиг директоријум је: %s", weechat_config_dir);
+if (weechat_config_dir)
+ free (weechat_config_dir);
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def info_get(info_name: str, arguments: str) -> str: ...
+
+# пример
+weechat.prnt("", "Текућа WeeChat везија је: %s (компајлирана %s)"
+ % (weechat.info_get("version", ""), weechat.info_get("date", ""))
+weechat.prnt("", "WeeChat конфиг директоријум је: %s" % weechat.info_get("weechat_config_dir", ""))
+----
+
+==== info_get_hashtable
+
+_WeeChat ≥ 0.3.4._
+
+Враћа инфо као хеш табелу, из програма WeeChat или из додатка.
+
+Прототип:
+
+[source, C]
+----
+struct t_hashtable *weechat_info_get_hashtable (const char *info_name,
+ struct t_hashtable *hashtable);
+----
+
+Аргументи:
+
+* _info_name_: име инфо који желите да прочитате (погледајте табелу испод)
+* _hashtable_: хеш табела са аргументима (зависи од тражене инфо) (није обавезна, NULL у случају да аргумент није потребан)
+
+Повратна вредност:
+
+* хеш табела са траженом инфо, NULL у случају да је дошло до грешке
+
+Информације:
+
+include::includes/autogen_api_infos_hashtable.sr.adoc[tag=infos_hashtable]
+
+C пример:
+
+[source, C]
+----
+struct t_hashtable *hashtable_in, *hashtable_out;
+
+hashtable_in = weechat_hashtable_new (8,
+ WEECHAT_HASHTABLE_STRING,
+ WEECHAT_HASHTABLE_STRING,
+ NULL,
+ NULL);
+if (hashtable_in)
+{
+ weechat_hashtable_set (
+ hashtable_in,
+ "message",
+ "@time=2015-06-27T16:40:35.000Z :nick!user@host PRIVMSG #weechat :hello!");
+ hashtable_out = weechat_info_get_hashtable ("irc_message_parse",
+ hashtable_in);
+ /*
+ * сада hashtable_out има следеће кључеве/вредности:
+ * "tags" : "time=2015-06-27T16:40:35.000Z"
+ * "message_without_tags": ":nick!user@host PRIVMSG #weechat :hello!"
+ * "nick" : "nick"
+ * "user" : "user"
+ * "host" : "nick!user@host"
+ * "command" : "PRIVMSG"
+ * "channel" : "#weechat"
+ * "arguments" : "#weechat :hello!"
+ * "text" : "hello!"
+ * "pos_command" : "47"
+ * "pos_arguments" : "55"
+ * "pos_channel" : "55"
+ * "pos_text" : "65"
+ */
+ weechat_hashtable_free (hashtable_in);
+ weechat_hashtable_free (hashtable_out);
+}
+----
+
+[NOTE]
+Погледајте link:weechat_scripting.sr.html#irc_message_parse[WeeChat водич за скриптовање / Парсирање поруке] за више информација у вези излаза „irc_message_parse”.
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def info_get_hashtable(info_name: str, dict_in: Dict[str, str]) -> Dict[str, str]: ...
+
+# пример
+dict_in = {"message": ":nick!user@host PRIVMSG #weechat :message here"}
+weechat.prnt("", "message parsed: %s"
+ % weechat.info_get_hashtable("irc_message_parse", dict_in))
+----
+
+[[infolists]]
+=== Инфолисте
+
+Инфолиста је листа „ставки”. Свака ставка садржи променљиве.
+
+На пример, инфолиста „irc_server” има N ставки (N је број дефинисаних IRC сервера). За сваку ставку постоје променљиве као што су „name”, „buffer”, „is_connected”...
+
+Свака променљива има тип и вредност. Могући типови су:
+
+* _integer_: било која целобројна вредност
+* _string_: било која стринг вредност
+* _pointer_: било који показивач
+* _buffer_: бафер фиксне величине, може да садржи било какве податке
+* _time_: временска вредност
+
+==== infolist_new
+
+Креира нову инфолисту.
+
+Прототип:
+
+[source, C]
+----
+struct t_infolist *weechat_infolist_new ();
+----
+
+Повратна вредност:
+
+* показивач на нову инфолисту
+
+C пример:
+
+[source, C]
+----
+struct t_infolist *infolist = weechat_infolist_new ();
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def infolist_new() -> str: ...
+
+# пример
+infolist = weechat.infolist_new()
+----
+
+==== infolist_new_item
+
+Додаје ставку и инфолисту.
+
+Прототип:
+
+[source, C]
+----
+struct t_infolist_item *weechat_infolist_new_item (struct t_infolist *infolist);
+----
+
+Аргументи:
+
+* _infolist_: показивач на инфо листу
+
+Повратна вредност:
+
+* показивач на нову ставку
+
+C пример:
+
+[source, C]
+----
+struct t_infolist_item *item = weechat_infolist_new_item (infolist);
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def infolist_new_item(infolist: str) -> str: ...
+
+# пример
+item = weechat.infolist_new_item(infolist)
+----
+
+==== infolist_new_var_integer
+
+Додаје целобројну променљиву у ставку инфолисте.
+
+Прототип:
+
+[source, C]
+----
+struct t_infolist_var *weechat_infolist_new_var_integer (struct t_infolist_item *item,
+ const char *name,
+ int value);
+----
+
+Аргументи:
+
+* _item_: показивач на ставку инфолисте
+* _name_: име променљиве
+* _value_: целобројна вредност
+
+Повратна вредност:
+
+* показивач на нову променљиву
+
+C пример:
+
+[source, C]
+----
+struct t_infolist_var *var = weechat_infolist_new_var_integer (item,
+ "my_integer",
+ 123);
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def infolist_new_var_integer(item: str, name: str, value: int) -> str: ...
+
+# пример
+var = weechat.infolist_new_var_integer(item, "my_integer", 123)
+----
+
+==== infolist_new_var_string
+
+Додаје стринг променљиву у ставку инфолисте.
+
+Прототип:
+
+[source, C]
+----
+struct t_infolist_var *weechat_infolist_new_var_string (struct t_infolist_item *item,
+ const char *name,
+ const char *value);
+----
+
+Аргументи:
+
+* _item_: показивач на ставку инфолисте
+* _name_: име променљиве
+* _value_: стринг вредност
+
+Повратна вредност:
+
+* показивач на нову променљиву
+
+C пример:
+
+[source, C]
+----
+struct t_infolist_var *var = weechat_infolist_new_var_string (item,
+ "my_string",
+ "value");
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def infolist_new_var_string(item: str, name: str, value: str) -> str: ...
+
+# пример
+var = weechat.infolist_new_var_string(item, "my_string", "value")
+----
+
+==== infolist_new_var_pointer
+
+Додаје показивач променљиву у ставку инфолисте.
+
+Прототип:
+
+[source, C]
+----
+struct t_infolist_var *weechat_infolist_new_var_pointer (struct t_infolist_item *item,
+ const char *name,
+ void *pointer);
+----
+
+Аргументи:
+
+* _item_: показивач на ставку инфолисте
+* _name_: име променљиве
+* _pointer_: показивач
+
+Повратна вредност:
+
+* показивач на нову променљиву
+
+C пример:
+
+[source, C]
+----
+struct t_infolist_var *var = weechat_infolist_new_var_pointer (item,
+ "my_pointer",
+ &pointer);
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def infolist_new_var_pointer(item: str, name: str, pointer: str) -> str: ...
+
+# пример
+var = weechat.infolist_new_var_pointer(item, "my_pointer", pointer)
+----
+
+==== infolist_new_var_buffer
+
+Додаје бафер променљиву у ставку инфолисте.
+
+Прототип:
+
+[source, C]
+----
+struct t_infolist_var *weechat_infolist_new_var_buffer (struct t_infolist_item *item,
+ const char *name,
+ void *pointer,
+ int size);
+----
+
+Аргументи:
+
+* _item_: показивач на ставку инфолисте
+* _name_: име променљиве
+* _pointer_: показивач на бафер
+* _size_: величина бафера
+
+Повратна вредност:
+
+* показивач на нову променљиву
+
+C пример:
+
+[source, C]
+----
+char buffer[256];
+/* ... */
+struct t_infolist_var *var = weechat_infolist_new_var_buffer (item,
+ "my_buffer",
+ &buffer,
+ sizeof (buffer));
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== infolist_new_var_time
+
+Додаје временску променљиву у ставку инфолисте.
+
+Прототип:
+
+[source, C]
+----
+struct t_infolist_var *weechat_infolist_new_var_time (struct t_infolist_item *item,
+ const char *name,
+ time_t time);
+----
+
+Аргументи:
+
+* _item_: показивач на ставку инфолисте
+* _name_: име променљиве
+* _time_: временска вредност
+
+Повратна вредност:
+
+* показивач на нову променљиву
+
+C пример:
+
+[source, C]
+----
+struct t_infolist_var *var = weechat_infolist_new_var_time (item,
+ "my_time",
+ time (NULL));
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def infolist_new_var_time(item: str, name: str, time: int) -> str: ...
+
+# пример
+var = weechat.infolist_new_var_time(item, "my_time", int(time.time()))
+----
+
+==== infolist_get
+
+Враћа инфолисту из програма WeeChat или из додатка.
+
+[IMPORTANT]
+Садржај инфолисте је копија актуелних података. Тако да ако тражите инфолисту са доста информација (као што је „buffer_lines”), програм WeeChat ће алоцирати меморију да дуплира све податке, а то може одузети доста времена. + Уместо да да користите велику инфолисту, пожељно је да користите hdata (мада инфолиста може да садржи више информација од hdata, који представља сирове податке), погледајте <<hdata,hdata>>.
+
+Прототип:
+
+[source, C]
+----
+struct t_infolist *weechat_infolist_get (const char *infolist_name,
+ void *pointer,
+ const char *arguments);
+----
+
+Аргументи:
+
+* _infolist_name_: име инфолисте коју желите да прочитате (погледајте табелу испод)
+* _pointer_: показивач на ставку, ако желите само ову ставку из инфолисте (није обавезан, може да буде NULL)
+* _arguments_: аргументи тражене инфолисте (нису обавезни, NULL ако аргументи нису потребни)
+
+Повратна вредност:
+
+* показивач на инфолисту, NULL у случају да је дошло до грешке
+
+Инфолисте:
+
+include::includes/autogen_api_infolists.sr.adoc[tag=infolists]
+
+C пример:
+
+[source, C]
+----
+struct t_infolist *infolist = weechat_infolist_get ("irc_server", NULL, NULL);
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def infolist_get(infolist_name: str, pointer: str, arguments: str) -> str: ...
+
+# пример
+infolist = weechat.infolist_get("irc_server", "", "")
+----
+
+==== infolist_next
+
+Помера „курсор” на наредну ставку у инфолисти. Први позив ове функције за неку инфолисту помера курсор на прву ставку те инфолисте.
+
+Прототип:
+
+[source, C]
+----
+int weechat_infolist_next (struct t_infolist *infolist);
+----
+
+Аргументи:
+
+* _infolist_: показивач на инфо листу
+
+Повратна вредност:
+
+* 1 ако се курсор померио на наредну ставку, 0 у случају да је достигнут крај листе
+
+C пример:
+
+[source, C]
+----
+if (weechat_infolist_next (infolist))
+{
+ /* читање променљивих из ставке... */
+}
+else
+{
+ /* нема више ниједне ставке */
+}
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def infolist_next(infolist: str) -> int: ...
+
+# пример
+rc = weechat.infolist_next(infolist)
+if rc:
+ # читање променљивих из ставке...
+else:
+ # нема више ниједне ставке
+----
+
+==== infolist_prev
+
+Помера „курсор” на претходну ставку у инфолисти. Први позив ове функције над инфолистом помера курсор на крај те инфолисте.
+
+Прототип:
+
+[source, C]
+----
+int weechat_infolist_prev (struct t_infolist *infolist);
+----
+
+Аргументи:
+
+* _infolist_: показивач на инфо листу
+
+Повратна вредност:
+
+* 1 ако се курсор померио на претходну ставку, 0 у случају да је достигнут почетак листе
+
+C пример:
+
+[source, C]
+----
+if (weechat_infolist_prev (infolist))
+{
+ /* читање променљивих у ставки... */
+}
+else
+{
+ /* нема више ниједне ставке */
+}
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def infolist_prev(infolist: str) -> int: ...
+
+# пример
+rc = weechat.infolist_prev(infolist)
+if rc:
+ # читање променљивих из ставке...
+else:
+ # нема више ниједне ставке
+----
+
+==== infolist_reset_item_cursor
+
+Ресетује „курсор” за инфолисту.
+
+Прототип:
+
+[source, C]
+----
+void weechat_infolist_reset_item_cursor (struct t_infolist *infolist);
+----
+
+Аргументи:
+
+* _infolist_: показивач на инфо листу
+
+C пример:
+
+[source, C]
+----
+weechat_infolist_reset_item_cursor (infolist);
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def infolist_reset_item_cursor(infolist: str) -> int: ...
+
+# пример
+weechat.infolist_reset_item_cursor(infolist)
+----
+
+==== infolist_search_var
+
+_WeeChat ≥ 0.4.3._
+
+Тражи променљиву у текућој ставки инфолисте.
+
+Прототип:
+
+[source, C]
+----
+struct t_infolist_var *weechat_infolist_search_var (struct t_infolist *infolist,
+ const char *name);
+----
+
+Аргументи:
+
+* _infolist_: показивач на инфо листу
+* _name_: име променљиве
+
+Повратна вредност:
+
+* показивач на пронађену променљиву, NULL у случају да се променљива не пронађе
+
+C пример:
+
+[source, C]
+----
+if (weechat_infolist_search_var (infolist, "name"))
+{
+ /* променљива „name” постоји */
+ /* ... */
+}
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def infolist_search_var(infolist: str, name: str) -> str: ...
+
+# пример
+if weechat.infolist_search_var(infolist, "name"):
+ # променљива „name” постоји
+ # ...
+----
+
+==== infolist_fields
+
+Враћа листу поља текуће ставке инфолисте.
+
+Прототип:
+
+[source, C]
+----
+const char *weechat_infolist_fields (struct t_infolist *infolist);
+----
+
+Аргументи:
+
+* _infolist_: показивач на инфо листу
+
+Повратна вредност:
+
+* стринг са листом поља текуће ставке инфолисте. Листа је раздвојена запетама и садржи слово за тип, након кога следи име променљиве. Типови су: „i” (integer), „s” (string), „p” (pointer), „b” (buffer), „t” (time).
+
+C пример:
+
+[source, C]
+----
+const char *fields = weechat_infolist_fields (infolist);
+/* поља садрже нешто слично овоме:
+ „i:my_integer,s:my_string,p:my_pointer,b:my_buffer,t:my_time” */
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def infolist_fields(infolist: str) -> str: ...
+
+# пример
+fields = weechat.infolist_fields(infolist)
+# поља садрже нешто слично овоме:
+# „i:my_integer,s:my_string,p:my_pointer,b:my_buffer,t:my_time”
+----
+
+==== infolist_integer
+
+Враћа вредност целобројне променљиве из текуће ставке инфолисте.
+
+Прототип:
+
+[source, C]
+----
+int weechat_infolist_integer (struct t_infolist *infolist, const char *var);
+----
+
+Аргументи:
+
+* _infolist_: показивач на инфо листу
+* _var_: име променљиве (мора бити типа „integer”)
+
+Повратна вредност:
+
+* целобројна вредност променљиве
+
+C пример:
+
+[source, C]
+----
+weechat_printf (NULL, "integer = %d",
+ weechat_infolist_integer (infolist, "my_integer"));
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def infolist_integer(infolist: str, var: str) -> int: ...
+
+# пример
+weechat.prnt("", "integer = %d" % weechat.infolist_integer(infolist, "my_integer"))
+----
+
+==== infolist_string
+
+Враћа вредност стринг променљиве из текуће ставке инфолисте.
+
+Прототип:
+
+[source, C]
+----
+const char *weechat_infolist_string (struct t_infolist *infolist, const char *var);
+----
+
+Аргументи:
+
+* _infolist_: показивач на инфо листу
+* _var_: име променљиве (мора бити типа „string”)
+
+Повратна вредност:
+
+* стринг вредност променљиве
+
+C пример:
+
+[source, C]
+----
+weechat_printf (NULL, "string = %s",
+ weechat_infolist_string (infolist, "my_string"));
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def infolist_string(infolist: str, var: str) -> str: ...
+
+# пример
+weechat.prnt("", "string = %s" % weechat.infolist_string(infolist, "my_string"))
+----
+
+==== infolist_pointer
+
+Враћа вредност показивач променљиве из текуће ставке инфолисте.
+
+Прототип:
+
+[source, C]
+----
+void *weechat_infolist_pointer (struct t_infolist *infolist, const char *var);
+----
+
+Аргументи:
+
+* _infolist_: показивач на инфо листу
+* _var_: име променљиве (мора бити типа „pointer”)
+
+Повратна вредност:
+
+* показивач вредност променљиве
+
+C пример:
+
+[source, C]
+----
+weechat_printf (NULL, "pointer = 0x%lx",
+ weechat_infolist_pointer (infolist, "my_pointer"));
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def infolist_pointer(infolist: str, var: str) -> str: ...
+
+# пример
+weechat.prnt("", "pointer = 0x%s" % weechat.infolist_pointer(infolist, "my_pointer"))
+----
+
+==== infolist_buffer
+
+Враћа вредност бафер променљиве из текуће ставке инфолисте.
+
+Прототип:
+
+[source, C]
+----
+void *weechat_infolist_buffer (struct t_infolist *infolist, const char *var,
+ int *size);
+----
+
+Аргументи:
+
+* _infolist_: показивач на инфо листу
+* _var_: име променљиве (мора бити типа „buffer”)
+* _size_: показивач на целобројну променљиву, поставиће се на величину бафера
+
+Повратна вредност:
+
+* показивач на бафер
+
+C пример:
+
+[source, C]
+----
+int size;
+void *pointer = weechat_infolist_buffer (infolist, "my_buffer", &size);
+weechat_printf (NULL, "buffer = 0x%lx, size = %d",
+ pointer, size);
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== infolist_time
+
+Враћа вредност временске променљиве из текуће ставке инфолисте.
+
+Прототип:
+
+[source, C]
+----
+time_t weechat_infolist_time (struct t_infolist *infolist, const char *var);
+----
+
+Аргументи:
+
+* _infolist_: показивач на инфо листу
+* _var_: име променљиве (мора бити типа „time”)
+
+Повратна вредност:
+
+* временска вредност променљиве
+
+C пример:
+
+[source, C]
+----
+weechat_printf (NULL, "time = %ld",
+ weechat_infolist_time (infolist, "my_time"));
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def infolist_time(infolist: str, var: str) -> int: ...
+
+# пример
+weechat.prnt("", "time = %ld" % weechat.infolist_time(infolist, "my_time"))
+----
+
+==== infolist_free
+
+Ослобађа меморију коју заузима инфолиста.
+
+Прототип:
+
+[source, C]
+----
+void weechat_infolist_free (struct t_infolist *infolist);
+----
+
+Аргументи:
+
+* _infolist_: показивач на инфо листу
+
+C пример:
+
+[source, C]
+----
+weechat_infolist_free (infolist);
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def infolist_free(infolist: str) -> int: ...
+
+# пример
+weechat.infolist_free(infolist)
+----
+
+[[hdata]]
+=== Hdata
+
+Функције за hdata (сирови приступ подацима програма WeeChat или подацима додатака).
+
+[IMPORTANT]
+Hdata обезбеђује приступ за подацима у режиму само-за-читање. *ИЗРИЧИТО ЈЕ ЗАБРАЊЕНО* да се било шта уписује у меморију на коју показују hdata променљиве. + Једини начин за ажурирање података је позив функције <<_hdata_update,hdata_update>>.
+
+==== hdata_new
+
+_WeeChat ≥ 0.3.6, ажурирано у верзијама 0.3.9 и 0.4.0._
+
+Креира нови hdata.
+
+[NOTE]
+.hdata у односу на инфолисту
+====
+Hdata је брз начин за читање података из програма WeeChat или из додатака. Слично је са инфолистом, али постоје неке разлике:
+
+* Брже је и користи мање меморије: директно читање без дуплирања.
+* Може да садржи различите податке у односу на инфолисту: садржи само сирове податке у структурама (инфолиста може додати неке додатне податке из разлога једноставније употребе).
+====
+
+Прототип:
+
+[source, C]
+----
+struct t_hdata *weechat_hdata_new (const char *hdata_name, const char *var_prev, const char *var_next,
+ int create_allowed, int delete_allowed,
+ int (*callback_update)(void *data,
+ struct t_hdata *hdata,
+ void *pointer,
+ struct t_hashtable *hashtable),
+ void *callback_update_data);
+----
+
+Аргументи:
+
+* _hdata_name_: име hdata
+* _var_prev_: име променљиве у структури која је показивач на претходни елемент у листи (може да буде NULL ако таква променљива не постоји)
+* _var_next_: име променљиве у структури која је показивач на наредни елемент у листи (може да буде NULL ако таква променљива не постоји)
+* _create_allowed_: 1 ако је дозвољено креирање структуре, у супротном 0 _(WeeChat ≥ 0.4.0)_
+* _delete_allowed_: 1 ако је дозвољено брисање структуре, у супротном 0 _(WeeChat ≥ 0.3.9)_
+* _callback_update_: функција повратног позива за ажурирање података у hdata, може да буде NULL ако није дозвољено ажурирање (WeeChat ≥ 0.3.9)_, аргументи и повратна вредност су:
+** _void *data_: показивач
+** _struct t_hdata *hdata_: показивач на hdata
+** _struct t_hashtable *hashtable_: хеш табела са променљивама које треба да се ажурирају (погледајте <<_hdata_update,hdata_update>>)
+** повратна вредност: број ажурираних променљивих
+* _callback_update_data_: показивач прослеђен функцији повратног позива када је позове програм WeeChat _(WeeChat ≥ 0.3.9)_
+
+Повратна вредност:
+
+* показивач на нови hdata
+
+C пример:
+
+[source, C]
+----
+struct t_hdata *hdata = weechat_hdata_new ("myplugin_list", "prev", "next", 0, 0, &callback_update, NULL);
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== hdata_new_var
+
+_WeeChat ≥ 0.3.6, ажурирано у верзији 0.3.9._
+
+Креира нову променљиву у hdata.
+
+Прототип:
+
+[source, C]
+----
+void weechat_hdata_new_var (struct t_hdata *hdata, const char *name, int offset, int type,
+ int update_allowed, const char *array_size, const char *hdata_name);
+----
+
+Аргументи:
+
+* _hdata_: показивач на hdata
+* _name_: име променљиве
+* _offset_: померај променљиве од почетка структуре
+* _type_: тип променљиве, једно од:
+** WEECHAT_HDATA_CHAR
+** WEECHAT_HDATA_INTEGER
+** WEECHAT_HDATA_LONG
+** WEECHAT_HDATA_STRING
+** WEECHAT_HDATA_SHARED_STRING
+** WEECHAT_HDATA_POINTER
+** WEECHAT_HDATA_TIME
+** WEECHAT_HDATA_HASHTABLE
+** WEECHAT_HDATA_OTHER
+* _update_allowed_: 1 ако се дозвољава ажурирање променљиве, у супротном 0 _(WeeChat ≥ 0.3.9)_
+* _array_size_: није NULL само ако је променљива низ, и може бити: _(WeeChat ≥ 0.3.9)_
+** име променљиве у hdata: ова променљива ће се користити као величина низа (динамичка величина низа)
+** вео број (као стринг): фиксна величина низа
+** _*_: аутоматска величина: величина низа се израчунава гледањем у вредности, када се наиђе на прво NULL (само за тип стринг, показивач или хеш табелу)
+* _hdata_name_: име hdata (ако је то показивач на структуру са hdata)
+
+C пример:
+
+[source, C]
+----
+struct t_myplugin_list
+{
+ char *name;
+ struct t_gui_buffer *buffer;
+ int tags_count;
+ char **tags_array;
+ char **string_split;
+ struct t_myplugin_list *prev;
+ struct t_myplugin_list *next;
+};
+
+/* ... */
+
+struct t_hdata *hdata = weechat_hdata_new ("myplugin_list", "prev", "next");
+weechat_hdata_new_var (hdata, "name", offsetof (struct t_myplugin_list, name), WEECHAT_HDATA_STRING, 0, NULL, NULL);
+weechat_hdata_new_var (hdata, "buffer", offsetof (struct t_myplugin_list, buffer), WEECHAT_HDATA_POINTER, 0, NULL, NULL);
+weechat_hdata_new_var (hdata, "tags_count", offsetof (struct t_myplugin_list, tags_count), WEECHAT_HDATA_INTEGER, 0, NULL, NULL);
+weechat_hdata_new_var (hdata, "tags_array", offsetof (struct t_myplugin_list, tags_array), WEECHAT_HDATA_STRING, 0, "tags_count", NULL);
+weechat_hdata_new_var (hdata, "string_split", offsetof (struct t_myplugin_list, string_split), WEECHAT_HDATA_STRING, 0, "*", NULL);
+weechat_hdata_new_var (hdata, "prev", offsetof (struct t_myplugin_list, prev), WEECHAT_HDATA_POINTER, 0, NULL, "myplugin_list");
+weechat_hdata_new_var (hdata, "next", offsetof (struct t_myplugin_list, next), WEECHAT_HDATA_POINTER, 0, NULL, "myplugin_list");
+----
+
+За скраћење кода, може да се употреби макро „WEECHAT_HDATA_VAR”:
+
+[source, C]
+----
+WEECHAT_HDATA_VAR(struct t_myplugin_list, name, STRING, 0, NULL, NULL);
+WEECHAT_HDATA_VAR(struct t_myplugin_list, buffer, POINTER, 0, NULL, NULL);
+WEECHAT_HDATA_VAR(struct t_myplugin_list, tags_count, INTEGER, 0, NULL, NULL);
+WEECHAT_HDATA_VAR(struct t_myplugin_list, tags_array, STRING, 0, "tags_count", NULL);
+WEECHAT_HDATA_VAR(struct t_myplugin_list, string_split, STRING, 0, "*", NULL);
+WEECHAT_HDATA_VAR(struct t_myplugin_list, prev, POINTER, 0, NULL, "myplugin_list");
+WEECHAT_HDATA_VAR(struct t_myplugin_list, next, POINTER, 0, NULL, "myplugin_list");
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== hdata_new_list
+
+_WeeChat ≥ 0.3.6, ажурирано у верзији 1.0._
+
+Креира нови показивач на листу у hdata.
+
+Прототип:
+
+[source, C]
+----
+void weechat_hdata_new_list (struct t_hdata *hdata, const char *name, void *pointer, int flags);
+----
+
+Аргументи:
+
+* _hdata_: показивач на hdata
+* _name_: име променљиве
+* _pointer_: показивач на листу
+* _flags_: комбинација следећих вредности: _(WeeChat ≥ 1.0)_
+** _WEECHAT_HDATA_LIST_CHECK_POINTERS_: листа која се користи за проверу показивача
+
+C пример:
+
+[source, C]
+----
+struct t_myplugin_list
+{
+ char *name;
+ struct t_gui_buffer *buffer;
+ int tags_count;
+ char **tags_array;
+ char **string_split;
+ struct t_myplugin_list *prev;
+ struct t_myplugin_list *next;
+};
+
+/* ... */
+
+struct t_hdata *hdata = weechat_hdata_new ("myplugin_list", "prev", "next");
+weechat_hdata_new_var (hdata, "name", offsetof (struct t_myplugin_list, name), WEECHAT_HDATA_STRING, NULL, NULL);
+weechat_hdata_new_var (hdata, "buffer", offsetof (struct t_myplugin_list, buffer), WEECHAT_HDATA_POINTER, NULL, NULL);
+weechat_hdata_new_var (hdata, "tags_count", offsetof (struct t_myplugin_list, tags_count), WEECHAT_HDATA_INTEGER, NULL, NULL);
+weechat_hdata_new_var (hdata, "tags_array", offsetof (struct t_myplugin_list, tags_array), WEECHAT_HDATA_STRING, "tags_count", NULL);
+weechat_hdata_new_var (hdata, "string_split", offsetof (struct t_myplugin_list, string_split), WEECHAT_HDATA_STRING, "*", NULL);
+weechat_hdata_new_var (hdata, "prev", offsetof (struct t_myplugin_list, prev), WEECHAT_HDATA_POINTER, NULL, "myplugin_list");
+weechat_hdata_new_var (hdata, "next", offsetof (struct t_myplugin_list, next), WEECHAT_HDATA_POINTER, NULL, "myplugin_list");
+
+weechat_hdata_new_list (hdata, "buffers", &buffers, WEECHAT_HDATA_LIST_CHECK_POINTERS);
+weechat_hdata_new_list (hdata, "last_buffer", &last_buffer, 0);
+----
+
+За скраћивање кода, може да се користи макро „WEECHAT_HDATA_LIST”:
+
+[source, C]
+----
+WEECHAT_HDATA_LIST(buffers, WEECHAT_HDATA_LIST_CHECK_POINTERS);
+WEECHAT_HDATA_LIST(last_buffer, 0);
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== hdata_get
+
+_WeeChat ≥ 0.3.6._
+
+Враћа hdata за структуру програма WeeChat или додатка.
+
+[NOTE]
+Hdata не садржи податке, то је само хеш табела са позицијама променљивих у структури. То значи да вам је за читање неких података потребан само овај hdata и показивач на објекат програма WeeChat/додатка.
+
+Прототип:
+
+[source, C]
+----
+struct t_hdata *weechat_hdata_get (const char *hdata_name);
+----
+
+Аргументи:
+
+* _hdata_name_: име hdata (погледајте листу испод)
+
+Повратна вредност:
+
+* показивач на hdata, NULL у случају да је дошло до грешке
+
+Листа hdata:
+
+include::includes/autogen_api_hdata.sr.adoc[tag=hdata]
+
+C пример:
+
+[source, C]
+----
+struct t_hdata *hdata = weechat_hdata_get ("irc_server");
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def hdata_get(hdata_name: str) -> str: ...
+
+# пример
+hdata = weechat.hdata_get("irc_server")
+----
+
+==== hdata_get_var_offset
+
+_WeeChat ≥ 0.3.6._
+
+Враћа померај променљиве у hdata.
+
+Прототип:
+
+[source, C]
+----
+int weechat_hdata_get_var_offset (struct t_hdata *hdata, const char *name);
+----
+
+Аргументи:
+
+* _hdata_: показивач на hdata
+* _name_: име променљиве
+
+Повратна вредност:
+
+* померај променљиве, 0 у случају да је дошло до грешке
+
+C пример:
+
+[source, C]
+----
+int offset = weechat_hdata_get_var_offset (hdata, "name");
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def hdata_get_var_offset(hdata: str, name: str) -> int: ...
+
+# пример
+offset = weechat.hdata_get_var_offset(hdata, "name")
+----
+
+==== hdata_get_var_type
+
+_WeeChat ≥ 0.3.6._
+
+Повратни тип променљиве у hdata (као цео број).
+
+Прототип:
+
+[source, C]
+----
+int weechat_hdata_get_var_type (struct t_hdata *hdata, const char *name);
+----
+
+Аргументи:
+
+* _hdata_: показивач на hdata
+* _name_: име променљиве
+
+Повратна вредност:
+
+* тип променљиве, -1 у случају да је дошло до грешке
+
+C пример:
+
+[source, C]
+----
+int type = weechat_hdata_get_var_type (hdata, "name");
+switch (type)
+{
+ case WEECHAT_HDATA_CHAR:
+ /* ... */
+ break;
+ case WEECHAT_HDATA_INTEGER:
+ /* ... */
+ break;
+ case WEECHAT_HDATA_LONG:
+ /* ... */
+ break;
+ case WEECHAT_HDATA_STRING:
+ /* ... */
+ break;
+ case WEECHAT_HDATA_SHARED_STRING:
+ /* ... */
+ break;
+ case WEECHAT_HDATA_POINTER:
+ /* ... */
+ break;
+ case WEECHAT_HDATA_TIME:
+ /* ... */
+ break;
+ case WEECHAT_HDATA_HASHTABLE:
+ /* ... */
+ break;
+ case WEECHAT_HDATA_OTHER:
+ /* ... */
+ break;
+ default:
+ /* променљива није пронађена */
+ break;
+}
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== hdata_get_var_type_string
+
+_WeeChat ≥ 0.3.6._
+
+Повратни тип променљиве у hdata (као стринг).
+
+Прототип:
+
+[source, C]
+----
+const char *weechat_hdata_get_var_type_string (struct t_hdata *hdata, const char *name);
+----
+
+Аргументи:
+
+* _hdata_: показивач на hdata
+* _name_: име променљиве
+
+Повратна вредност:
+
+* тип променљиве, NULL у случају да је дошло до грешке
+
+C пример:
+
+[source, C]
+----
+weechat_printf (NULL, "type = %s", weechat_hdata_get_var_type_string (hdata, "name"));
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def hdata_get_var_type_string(hdata: str, name: str) -> str: ...
+
+# пример
+weechat.prnt("", "type = %s" % weechat.hdata_get_var_type_string("name"))
+----
+
+==== hdata_get_var_array_size
+
+_WeeChat ≥ 0.3.9._
+
+Враћа величину низа за променљиву у hdata.
+
+Прототип:
+
+[source, C]
+----
+int weechat_hdata_get_var_array_size (struct t_hdata *hdata, void *pointer, const char *name);
+----
+
+Аргументи:
+
+* _hdata_: показивач на hdata
+* _pointer_: показивач на објекат програма WeeChat/додатка
+* _name_: име променљиве
+
+Повратна вредност:
+
+* величина низа за променљиву, -1 ако променљива није низ или у случају да је дошло до грешке
+
+C пример:
+
+[source, C]
+----
+int array_size = weechat_hdata_get_var_array_size (hdata, pointer, "name");
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def hdata_get_var_array_size(hdata: str, pointer: str, name: str) -> int: ...
+
+# пример
+array_size = weechat.hdata_get_var_array_size(hdata, pointer, "name")
+----
+
+==== hdata_get_var_array_size_string
+
+_WeeChat ≥ 0.3.9._
+
+Враћа величину низа за променљиву у hdata (као стринг).
+
+Прототип:
+
+[source, C]
+----
+const char *weechat_hdata_get_var_array_size_string (struct t_hdata *hdata, void *pointer,
+ const char *name);
+----
+
+Аргументи:
+
+* _hdata_: показивач на hdata
+* _pointer_: показивач на објекат програма WeeChat/додатка
+* _name_: име променљиве
+
+Повратна вредност:
+
+* величина низа за променљиву као стринг, NULL у случају да променљива није низ, или ако је дошло до грешке
+
+C пример:
+
+[source, C]
+----
+const char *array_size = weechat_hdata_get_var_array_size_string (hdata, pointer, "name");
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def hdata_get_var_array_size_string(hdata: str, pointer: str, name: str) -> str: ...
+
+# пример
+array_size = weechat.hdata_get_var_array_size_string(hdata, pointer, "name")
+----
+
+==== hdata_get_var_hdata
+
+_WeeChat ≥ 0.3.6._
+
+Враћа hdata за променљиву у hdata.
+
+Прототип:
+
+[source, C]
+----
+const char *weechat_hdata_get_var_hdata (struct t_hdata *hdata, const char *name);
+----
+
+Аргументи:
+
+* _hdata_: показивач на hdata
+* _name_: име променљиве
+
+Повратна вредност:
+
+* hdata за променљиву, NULL ако нема hdata или у случају да је дошло до грешке
+
+C пример:
+
+[source, C]
+----
+weechat_printf (NULL, "hdata = %s", weechat_hdata_get_var_hdata (hdata, "name"));
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def hdata_get_var_hdata(hdata: str, name: str) -> str: ...
+
+# пример
+weechat.prnt("", "hdata = %s" % weechat.hdata_get_var_hdata(hdata, "name"))
+----
+
+==== hdata_get_var
+
+_WeeChat ≥ 0.3.6._
+
+Враћа показивач на садржај променљиве у hdata.
+
+Прототип:
+
+[source, C]
+----
+void *weechat_hdata_get_var (struct t_hdata *hdata, void *pointer, const char *name);
+----
+
+Аргументи:
+
+* _hdata_: показивач на hdata
+* _pointer_: показивач на објекат програма WeeChat/додатка
+* _name_: име променљиве
+
+Повратна вредност:
+
+* показивач на садржај променљиве, NULL у случају да је дошло до грешке
+
+C пример:
+
+[source, C]
+----
+struct t_hdata *hdata = weechat_hdata_get ("buffer");
+struct t_gui_buffer *buffer = weechat_buffer_search_main ();
+void *pointer = weechat_hdata_get_var (hdata, buffer, "name");
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== hdata_get_var_at_offset
+
+_WeeChat ≥ 0.3.6._
+
+Враћа показивач на садржај променљиве у hdata, користећи померај.
+
+Прототип:
+
+[source, C]
+----
+void *weechat_hdata_get_var_at_offset (struct t_hdata *hdata, void *pointer, int offset);
+----
+
+Аргументи:
+
+* _hdata_: показивач на hdata
+* _pointer_: показивач на објекат програма WeeChat/додатка
+* _offset_: померај променљиве
+
+Повратна вредност:
+
+* показивач на садржај променљиве, NULL у случају да је дошло до грешке
+
+C пример:
+
+[source, C]
+----
+struct t_hdata *hdata = weechat_hdata_get ("buffer");
+struct t_gui_buffer *buffer = weechat_buffer_search_main ();
+int offset = weechat_hdata_get_var_offset (hdata, "name");
+void *pointer = weechat_hdata_get_var_at_offset (hdata, buffer, offset);
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== hdata_get_list
+
+_WeeChat ≥ 0.3.6._
+
+Враћа показивач на листу из hdata.
+
+Прототип:
+
+[source, C]
+----
+void *weechat_hdata_get_list (struct t_hdata *hdata, const char *name);
+----
+
+Аргументи:
+
+* _hdata_: показивач на hdata
+* _name_: име листе
+
+Повратна вредност:
+
+* показивач на листу, NULL у случају да је дошло до грешке
+
+C пример:
+
+[source, C]
+----
+struct t_hdata *hdata = weechat_hdata_get ("buffer");
+struct t_gui_buffer *buffers = weechat_hdata_get_list (hdata, "gui_buffers");
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def hdata_get_list(hdata: str, name: str) -> str: ...
+
+# пример
+hdata = weechat.hdata_get("buffer")
+buffers = weechat.hdata_get_list(hdata, "gui_buffers")
+----
+
+==== hdata_check_pointer
+
+_WeeChat ≥ 0.3.7, ажурирано у верзији 1.0._
+
+Проверава да ли показивач важи за hdata и показивач листе.
+
+Прототип:
+
+[source, C]
+----
+int weechat_hdata_check_pointer (struct t_hdata *hdata, void *list, void *pointer);
+----
+
+Аргументи:
+
+* _hdata_: показивач на hdata
+* _list_: показивач на листу; ако је NULL _(WeeChat ≥ 1.0)_, показивач се проверава са листама у hdata које имају заставицу „check pointers” (погледајте <<_hdata_new_list,hdata_new_list>>), па ако таква листа не постоји, сматра се да је показивач важећи
+* _pointer_: показивач који треба да се провери
+
+Повратна вредност:
+
+* 1 ако је показивач у листи, 0 ако се не пронађе
+
+C пример:
+
+[source, C]
+----
+/* check if a buffer pointer is valid */
+struct t_hdata *hdata = weechat_hdata_get ("buffer");
+if (weechat_hdata_check_pointer (hdata,
+ weechat_hdata_get_list (hdata, "gui_buffers"),
+ ptr_buffer))
+{
+ /* важећи показивач */
+}
+else
+{
+ /* неважећи показивач */
+}
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def hdata_check_pointer(hdata: str, list: str, pointer: str) -> int: ...
+
+# пример
+hdata = weechat.hdata_get("buffer")
+if weechat.hdata_check_pointer(hdata, weechat.hdata_get_list(hdata, "gui_buffers"), ptr_buffer):
+ # важећи показивач
+ # ...
+else:
+ # неважећи показивач
+ # ...
+----
+
+==== hdata_move
+
+_WeeChat ≥ 0.3.6._
+
+Помера показивач на други елементу листи.
+
+Прототип:
+
+[source, C]
+----
+void *weechat_hdata_move (struct t_hdata *hdata, void *pointer, int count);
+----
+
+Аргументи:
+
+* _hdata_: показивач на hdata
+* _pointer_: показивач на објекат програма WeeChat/додатка
+* _count_: број скок(а/ова) који треба да се изврше (негативни или позитивни цео број различит од нуле)
+
+Повратна вредност:
+
+* показивач на достигнут елемент, NULL ако се елемент не пронађе (на пример, крај листе), или је дошло до грешке
+
+C пример:
+
+[source, C]
+----
+struct t_hdata *hdata = weechat_hdata_get ("buffer");
+struct t_gui_buffer *buffer = weechat_buffer_search_main ();
+
+/* помера се на наредни бафер, 2 пута */
+buffer = weechat_hdata_move (hdata, buffer, 2);
+
+/* помера се на претходни бафер */
+if (buffer)
+ buffer = weechat_hdata_move (hdata, buffer, -1);
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def hdata_move(hdata: str, pointer: str, count: int) -> str: ...
+
+# пример
+hdata = weechat.hdata_get("buffer")
+buffer = weechat.buffer_search_main()
+
+# помера се на наредни бафер, 2 пута
+buffer = weechat.hdata_move(hdata, buffer, 2)
+
+# помера се на претходни бафер
+if buffer:
+ buffer = weechat.hdata_move(hdata, buffer, -1)
+----
+
+==== hdata_search
+
+_WeeChat ≥ 0.4.1._
+
+Тражи елемент у листи: израз _search_ се тражи за сваки елемент у листи, све док се елемент не пронађе (или наиђе на крај листе).
+
+Прототип:
+
+[source, C]
+----
+void *weechat_hdata_search (struct t_hdata *hdata, void *pointer, const char *search, int move);
+----
+
+Аргументи:
+
+* _hdata_: показивач на hdata
+* _pointer_: показивач на објекат програма WeeChat/додатка
+* _search_: израз који се израчунава, подразумевани показивач у изразу је име hdata (и овај показивач се мења за сваки елемент у листи); за помоћ у вези израза, погледајте link:weechat_user.sr.html#command_weechat_eval[WeeChat корисничко упутство / Команда /eval]
+* _move_: број скок(а/ова) који треба да се изврши након неуспешне претраге (негативни или позитивни цео број, различит од 0)
+
+Повратна вредност:
+
+* показивач на пронађени елемент, NULL у случају да се не пронађе
+
+C пример:
+
+[source, C]
+----
+struct t_hdata *hdata = weechat_hdata_get ("irc_server");
+void *servers = weechat_hdata_get_list (hdata, "irc_servers");
+
+/* тражи irc сервер под именом „libera” */
+void *server = weechat_hdata_search (hdata, servers, "${irc_server.name} == libera", 1);
+if (server)
+{
+ /* ... */
+}
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def hdata_search(hdata: str, pointer: str, search: str, count: int) -> str: ...
+
+# пример
+hdata = weechat.hdata_get("irc_server")
+servers = weechat.hdata_get_list(hdata, "irc_servers")
+
+# тражи irc сервер под именом „libera”
+server = weechat.hdata_search(hdata, servers, "${irc_server.name} == libera", 1)
+if server:
+ # ...
+----
+
+==== hdata_char
+
+_WeeChat ≥ 0.3.7._
+
+Враћа вредност карактер променљиве у структури користећи hdata.
+
+Прототип:
+
+[source, C]
+----
+char weechat_hdata_char (struct t_hdata *hdata, void *pointer, const char *name);
+----
+
+Аргументи:
+
+* _hdata_: показивач на hdata
+* _pointer_: показивач на објекат програма WeeChat/додатка
+* _name_: име променљиве (мора бити типа „char”); у случају низова, име може да буде „N|име” где је N индекс низа (који почиње од 0), на пример: „2|име”
+
+Повратна вредност:
+
+* карактер вредност променљиве
+
+C пример:
+
+[source, C]
+----
+weechat_printf (NULL, "letter = %c", weechat_hdata_char (hdata, pointer, "letter"));
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def hdata_char(hdata: str, pointer: str, name: str) -> int: ...
+
+# пример
+weechat.prnt("", "letter = %c" % weechat.hdata_char(hdata, pointer, "letter"))
+----
+
+==== hdata_integer
+
+_WeeChat ≥ 0.3.6._
+
+Враћа вредност целобројне променљиве у структури користећи hdata.
+
+Прототип:
+
+[source, C]
+----
+int weechat_hdata_integer (struct t_hdata *hdata, void *pointer, const char *name);
+----
+
+Аргументи:
+
+* _hdata_: показивач на hdata
+* _pointer_: показивач на објекат програма WeeChat/додатка
+* _name_: име променљиве (мора бити типа „integer”); у случају низова, име може да буде „N|име” где је N индекс низа (који почиње од 0), на пример: „2|име”
+
+Повратна вредност:
+
+* целобројна вредност променљиве
+
+C пример:
+
+[source, C]
+----
+struct t_hdata *hdata = weechat_hdata_get ("buffer");
+struct t_gui_buffer *buffer = weechat_buffer_search_main ();
+weechat_printf (NULL, "number = %d", weechat_hdata_integer (hdata, buffer, "number"));
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def hdata_integer(hdata: str, pointer: str, name: str) -> int: ...
+
+# пример
+hdata = weechat.hdata_get("buffer")
+buffer = weechat.buffer_search_main()
+weechat.prnt("", "number = %d" % weechat.hdata_integer(hdata, buffer, "number"))
+----
+
+==== hdata_long
+
+_WeeChat ≥ 0.3.6._
+
+Враћа вредност дугачке променљиве у структури користећи hdata.
+
+Прототип:
+
+[source, C]
+----
+long weechat_hdata_long (struct t_hdata *hdata, void *pointer, const char *name);
+----
+
+Аргументи:
+
+* _hdata_: показивач на hdata
+* _pointer_: показивач на објекат програма WeeChat/додатка
+* _name_: име променљиве (мора бити типа „long”); у случају низова, име може да буде „N|име” где је N индекс низа (који почиње од 0), на пример: „2|име”
+
+Повратна вредност:
+
+* дугачка вредност променљиве
+
+C пример:
+
+[source, C]
+----
+weechat_printf (NULL, "longvar = %ld", weechat_hdata_long (hdata, pointer, "longvar"));
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def hdata_long(hdata: str, pointer: str, name: str) -> int: ...
+
+# пример
+weechat.prnt("", "longvar = %ld" % weechat.hdata_long(hdata, pointer, "longvar"))
+----
+
+==== hdata_string
+
+_WeeChat ≥ 0.3.6._
+
+Враћа вредност стринг променљиве у структури користећи hdata.
+
+Прототип:
+
+[source, C]
+----
+const char *weechat_hdata_string (struct t_hdata *hdata, void *pointer, const char *name);
+----
+
+Аргументи:
+
+* _hdata_: показивач на hdata
+* _pointer_: показивач на објекат програма WeeChat/додатка
+* _name_: име променљиве (мора бити типа „string”); у случају низова, име може да буде „N|име” где је N индекс низа (који почиње од 0), на пример: „2|име”
+
+Повратна вредност:
+
+* стринг вредност променљиве
+
+C пример:
+
+[source, C]
+----
+struct t_hdata *hdata = weechat_hdata_get ("buffer");
+struct t_gui_buffer *buffer = weechat_buffer_search_main ();
+weechat_printf (NULL, "name = %s", weechat_hdata_string (hdata, buffer, "name"));
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def hdata_string(hdata: str, pointer: str, name: str) -> str: ...
+
+# пример
+hdata = weechat.hdata_get("buffer")
+buffer = weechat.buffer_search_main()
+weechat.prnt("", "name = %s" % weechat.hdata_string(hdata, buffer, "name"))
+----
+
+==== hdata_pointer
+
+_WeeChat ≥ 0.3.6._
+
+Враћа вредност показивач променљиве у структури користећи hdata.
+
+Прототип:
+
+[source, C]
+----
+void *weechat_hdata_pointer (struct t_hdata *hdata, void *pointer, const char *name);
+----
+
+Аргументи:
+
+* _hdata_: показивач на hdata
+* _pointer_: показивач на објекат програма WeeChat/додатка
+* _name_: име променљиве (мора бити типа „pointer”); у случају низова, име може да буде „N|име” где је N индекс низа (који почиње од 0), на пример: „2|име”
+
+Повратна вредност:
+
+* показивач вредност променљиве
+
+C пример:
+
+[source, C]
+----
+struct t_hdata *hdata = weechat_hdata_get ("buffer");
+struct t_gui_buffer *buffer = weechat_buffer_search_main ();
+weechat_printf (NULL, "lines = %lx", weechat_hdata_pointer (hdata, buffer, "lines"));
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def hdata_pointer(hdata: str, pointer: str, name: str) -> str: ...
+
+# пример
+hdata = weechat.hdata_get("buffer")
+buffer = weechat.buffer_search_main()
+weechat.prnt("", "lines = %lx" % weechat.hdata_pointer(hdata, buffer, "lines"))
+----
+
+==== hdata_time
+
+_WeeChat ≥ 0.3.6._
+
+Враћа вредност временске променљиве у структури користећи hdata.
+
+Прототип:
+
+[source, C]
+----
+time_t weechat_hdata_time (struct t_hdata *hdata, void *pointer, const char *name);
+----
+
+Аргументи:
+
+* _hdata_: показивач на hdata
+* _pointer_: показивач на објекат програма WeeChat/додатка
+* _name_: име променљиве (мора бити типа „time”); у случају низова, име може да буде „N|име” где је N индекс низа (који почиње од 0), на пример: „2|име”
+
+Повратна вредност:
+
+* временска вредност променљиве
+
+C пример:
+
+[source, C]
+----
+struct t_hdata *hdata = weechat_hdata_get ("buffer");
+struct t_gui_buffer *ptr = weechat_buffer_search_main ();
+ptr = weechat_hdata_pointer (hdata, ptr, "lines");
+if (ptr)
+{
+ hdata = weechat_hdata_get ("lines");
+ ptr = weechat_hdata_pointer (hdata, ptr, "first_line");
+ if (ptr)
+ {
+ hdata = weechat_hdata_get ("line");
+ ptr = weechat_hdata_pointer (hdata, ptr, "data");
+ if (ptr)
+ {
+ hdata = weechat_hdata_get ("line_data");
+ time_t date = weechat_hdata_time (hdata, hdata, "date");
+ weechat_printf (NULL, "time of last line displayed = %s", ctime (&date));
+ }
+ }
+}
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def hdata_time(hdata: str, pointer: str, name: str) -> int: ...
+
+# пример
+buf = weechat.buffer_search_main()
+ptr = weechat.hdata_pointer(weechat.hdata_get("buffer"), buf, "lines")
+if ptr:
+ ptr = weechat.hdata_pointer(weechat.hdata_get("lines"), ptr, "first_line")
+ if ptr:
+ ptr = weechat.hdata_pointer(weechat.hdata_get("line"), ptr, "data")
+ if ptr:
+ date = weechat.hdata_time(weechat.hdata_get("line_data"), ptr, "date")
+ weechat.prnt("", "time of first line displayed = %s" % time.strftime("%F %T", time.localtime(int(date))))
+----
+
+==== hdata_hashtable
+
+_WeeChat ≥ 0.3.7._
+
+Враћа вредност хеш табела променљиве у структури користећи hdata.
+
+Прототип:
+
+[source, C]
+----
+struct t_hashtable *weechat_hdata_hashtable (struct t_hdata *hdata, void *pointer, const char *name);
+----
+
+Аргументи:
+
+* _hdata_: показивач на hdata
+* _pointer_: показивач на објекат програма WeeChat/додатка
+* _name_: име променљиве (мора бити типа „hashtable”); у случају низова, име може да буде „N|име” где је N индекс низа (који почиње од 0), на пример: „2|име”
+
+Повратна вредност:
+
+* хеш табела вредност променљиве (показивач на хеш табелу)
+
+C пример:
+
+[source, C]
+----
+struct t_hdata *hdata = weechat_hdata_get ("buffer");
+struct t_gui_buffer *buffer = weechat_buffer_search_main ();
+struct t_hashtable *hashtable = weechat_hdata_hashtable (hdata, buffer, "local_variables");
+weechat_printf (NULL, "%d local variables in core buffer",
+ weechat_hashtable_get_integer (hashtable, "items_count"));
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def hdata_hashtable(hdata: str, pointer: str, name: str) -> Dict[str, str]: ...
+
+# пример
+hdata = weechat.hdata_get("buffer")
+buffer = weechat.buffer_search_main()
+hash = weechat.hdata_hashtable(hdata, buffer, "local_variables")
+weechat.prnt("", "локалне променљиве у core баферу:")
+for key in hash:
+ weechat.prnt("", " %s == %s" % (key, hash[key]))
+----
+
+==== hdata_compare
+
+_WeeChat ≥ 1.9._
+
+Пореди hdata променљиву два објекта.
+
+Прототип:
+
+[source, C]
+----
+int weechat_hdata_compare (struct t_hdata *hdata, void *pointer1, void *pointer2, const char *name, int case_sensitive);
+----
+
+Аргументи:
+
+* _hdata_: показивач на hdata
+* _pointer1_: показивач на први објекат програма WeeChat/додатка
+* _pointer2_: показивач на други објекат програма WeeChat/додатка
+* _name_: име променљиве; у случају низова, име може бити „N|име” где је N индекс низа (који почиње од 0), на пример: „2|име”
+* _case_sensitive_: 1 за поређење стрингова које разликује величину слова, у супротном 0
+
+Повратна вредност:
+
+* -1 ако је variable1 < variable2
+* 0 ако је variable1 == variable2
+* 1 ако је variable1 > variable2
+
+C пример:
+
+[source, C]
+----
+struct t_hdata *hdata = weechat_hdata_get ("buffer");
+struct t_gui_buffer *buffer1 = weechat_buffer_search ("irc", "libera.#weechat");
+struct t_gui_buffer *buffer2 = weechat_buffer_search ("irc", "libera.#weechat-fr");
+weechat_printf (NULL, "number comparison = %d",
+ weechat_hdata_compare (hdata, buffer1, buffer2, "number", 0));
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def hdata_compare(hdata: str, pointer1: str, pointer2: str, name: str, case_sensitive: int) -> int: ...
+
+# пример
+hdata = weechat.hdata_get("buffer")
+buffer1 = weechat.buffer_search("irc", "libera.#weechat")
+buffer2 = weechat.buffer_search("irc", "libera.#weechat-fr")
+weechat.prnt("", "бројно поређење = %d" % weechat.hdata_compare(hdata, buffer1, buffer2, "number", 0))
+----
+
+==== hdata_set
+
+_WeeChat ≥ 0.3.9._
+
+Поставља нову вредност променљиве у hdata.
+
+[NOTE]
+Ова функција може да се позива само из функције повратног позива ажурирања (погледајте <<_hdata_new,hdata_new>> и <<_hdata_update,hdata_update>>), ако је дозвољено ажурирање променљиве.
+
+Прототип:
+
+[source, C]
+----
+int weechat_hdata_set (struct t_hdata *hdata, void *pointer, const char *name, const char *value);
+----
+
+Аргументи:
+
+* _hdata_: показивач на hdata
+* _pointer_: показивач на објекат програма WeeChat/додатка
+* _name_: име променљиве (дозвољени типови: char, integer, long, string, pointer, time)
+* _value_: нова вредност променљиве
+
+Повратна вредност:
+
+* 1 ако је све OK, 0 у случају грешке
+
+C пример:
+
+[source, C]
+----
+weechat_hdata_set (hdata, pointer, "message", "test");
+----
+
+[NOTE]
+Ова функција није доступна у API скриптовања.
+
+==== hdata_update
+
+_WeeChat ≥ 0.3.9._
+
+Ажурира податке у hdata.
+
+Прототип:
+
+[source, C]
+----
+int weechat_hdata_update (struct t_hdata *hdata, void *pointer, struct t_hashtable *hashtable);
+----
+
+Аргументи:
+
+* _hdata_: показивач на hdata
+* _pointer_: показивач на објекат програма WeeChat/додатка
+* _hashtable_: променљиве које треба да се ажурирају: кључеви су имена променљивих, вредност су нове вредности за те променљиве (кључеви и вредности су стрингови), дозвољени су и неки специјални кључеви:
+** кључ `+__create_allowed+` (са било којим вредности): враћа се 1 ако је за структуру дозвољено ажурирање, у супротном 0 _(WeeChat ≥ 0.4.0)_
+** кључ `+__delete_allowed+` (са било којом вредности): враћа се 1 ако је за структуру дозвољено брисање, у супротном 0
+** кључ `+__update_allowed+`, вредност је име променљиве: враћа се 1 ако је за ову променљиву дозвољено ажурирање, у супротном 0
+** кључ `+__delete+` (са било којом вредности): структура се брише (ако је то дозвољено)
+
+Повратна вредност:
+
+* број ажурираних променљивих
+
+C пример:
+
+[source, C]
+----
+/* одузима један сад од последње приказане поруке у текућем баферу */
+
+struct t_gui_lines *own_lines;
+struct t_gui_line *line;
+struct t_gui_line_data *line_data;
+struct t_hdata *hdata;
+struct t_hashtable *hashtable;
+char str_date[64];
+
+own_lines = weechat_hdata_pointer (weechat_hdata_get ("buffer"), weechat_current_buffer (), "own_lines");
+if (own_lines)
+{
+ line = weechat_hdata_pointer (weechat_hdata_get ("lines"), own_lines, "last_line");
+ if (line)
+ {
+ line_data = weechat_hdata_pointer (weechat_hdata_get ("line"), line, "data");
+ hdata = weechat_hdata_get ("line_data");
+ hashtable = weechat_hashtable_new (8,
+ WEECHAT_HASHTABLE_STRING,
+ WEECHAT_HASHTABLE_STRING,
+ NULL,
+ NULL);
+ if (hashtable)
+ {
+ snprintf (str_date, sizeof (str_date), "%ld", ((long int)weechat_hdata_time (hdata, line_data, "date")) - 3600);
+ weechat_hashtable_set (hashtable, "date", str_date);
+ weechat_hdata_update (hdata, line_data, hashtable);
+ weechat_hashtable_free (hashtable);
+ }
+ }
+}
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def hdata_update(hdata: str, pointer: str, hashtable: Dict[str, str]) -> int: ...
+
+# пример: одузима један сад од последње приказане поруке у текућем баферу
+own_lines = weechat.hdata_pointer(weechat.hdata_get("buffer"), weechat.current_buffer(), "own_lines")
+if own_lines:
+ line = weechat.hdata_pointer(weechat.hdata_get("lines"), own_lines, "last_line")
+ if line:
+ line_data = weechat.hdata_pointer(weechat.hdata_get("line"), line, "data")
+ hdata = weechat.hdata_get("line_data")
+ weechat.hdata_update(hdata, line_data, {"date": str(weechat.hdata_time(hdata, line_data, "date") - 3600)})
+----
+
+==== hdata_get_string
+
+_WeeChat ≥ 0.3.6._
+
+Враћа стринг вредност hdata особине.
+
+Прототип:
+
+[source, C]
+----
+const char *weechat_hdata_get_string (struct t_hdata *hdata, const char *property);
+----
+
+Аргументи:
+
+* _hdata_: показивач на hdata
+* _property_: име особине:
+** _var_keys_: стринг са листом кључева за променљиве у hdata (у формату: „кључ1,кључ2,кључ3")
+** _var_values_: стринг са листом вредности за променљиве у hdata (у формату: „вредност1,вредност2,вредност3”)
+** _var_keys_values_: стринг са листом кључева и вредности за променљиве у hdata (у формату: „кључ1:вредост1,кључ2:вредност2,кључ3:вредност3”)
+** _var_prev_: име променљиве у структури која је показивач на претходни елемент листе
+** _var_next_: име променљиве у структури која је показивач на наредни елемент листе
+** _list_keys_: стринг са листом кључева за листе у hdata (у формату: „кључ1,кључ2,кључ3”)
+** _list_values_: стринг са листом вредности за листе у hdata (у формату: „вредност1,вредност2,вредност3”)
+** _list_keys_values_: стринг са листом кључева и вредности за листе у hdata (у формату: „кључ1:вредност1,кључ2:вредност2,кључ3:вредност3”)
+
+Повратна вредност:
+
+* стринг вредност особине
+
+C пример:
+
+[source, C]
+----
+weechat_printf (NULL, "променљиве у hdata: %s", weechat_hdata_get_string (hdata, "var_keys"));
+weechat_printf (NULL, "листе у hdata: %s", weechat_hdata_get_string (hdata, "list_keys"));
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def hdata_get_string(hdata: str, property: str) -> str: ...
+
+# пример
+weechat.prnt("", "променљиве у hdata: %s" % weechat.hdata_get_string(hdata, "var_keys"))
+weechat.prnt("", "листе у hdata: %s" % weechat.hdata_get_string(hdata, "list_keys"))
+----
+
+[[upgrade]]
+=== Ажурирање
+
+Функције за ажурирање програма WeeChat (командом "/upgrade").
+
+==== upgrade_new
+
+_Ажурирано у верзији 1.5._
+
+Креира или чита фајл за ажурирање.
+
+Прототип:
+
+[source, C]
+----
+struct t_upgrade_file *upgrade_file_new (const char *filename,
+ int (*callback_read)(const void *pointer,
+ void *data,
+ struct t_upgrade_file *upgrade_file,
+ int object_id,
+ struct t_infolist *infolist),
+ const void *callback_read_pointer,
+ void *callback_read_data);
+----
+
+Аргументи:
+
+* _filename_: име фајла (програм WeeChat овом имену додаје екстензију „.upgrade”)
+* _callback_read_: функција која се зове за сваки објекат који се прочита у фајлу ажурирања (ако је NULL, фајл ажурирања се отвара у режиму уписа), аргументи и повратна вредност су:
+** _const void *pointer_: показивач
+** _void *data_: показивач
+** _struct t_upgrade_file *upgrade_file_: показивач на фајл ажурирања
+** _int object_id_: id објекта
+** _struct t_infolist *infolist_: инфолиста са садржајем објекта
+** повратна вредност:
+*** _WEECHAT_RC_OK_
+*** _WEECHAT_RC_ERROR_
+* _callback_read_pointer_: показивач који се прослеђује функцији повратног позива када је позове програм WeeChat
+* _callback_read_data_: показивач који се прослеђује функцији повратног позива када је позове програм WeeChat; ако је NULL, алоцирала га је malloc (или нека слична функција) и аутоматски се ослобађа када се затвори фајл ажурирања
+
+Повратна вредност:
+
+* показивач на фајл ажурирања
+
+C пример:
+
+[source, C]
+----
+struct t_upgrade_file *upgrade_file = weechat_upgrade_new ("my_file",
+ NULL, NULL, NULL);
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def upgrade_new(filename: str, callback_read: str, callback_read_data: str) -> str: ...
+
+# пример
+upgrade_file = weechat.upgrade_new("my_file", "", "")
+----
+
+==== upgrade_write_object
+
+Уписује објекат у фајл ажурирања.
+
+Прототип:
+
+[source, C]
+----
+int weechat_upgrade_write_object (struct t_upgrade_file *upgrade_file,
+ int object_id,
+ struct t_infolist *infolist);
+----
+
+Аргументи:
+
+* _upgrade_file_: показивач на фајл ажурирања
+* _object_id_: id за објекат
+* _infolist_: инфолиста која треба да се упише у фајл
+
+Повратна вредност:
+
+* 1 ако је све OK, 0 у случају грешке
+
+C пример:
+
+[source, C]
+----
+if (weechat_upgrade_write_object (upgrade_file, 1, &infolist))
+{
+ /* OK */
+}
+else
+{
+ /* грешка */
+}
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def upgrade_write_object(upgrade_file: str, object_id: int, infolist: str) -> int: ...
+
+# пример
+weechat.upgrade_write_object(upgrade_file, 1, infolist)
+----
+
+==== upgrade_read
+
+_Ажурирано у верзији 1.5._
+
+Чита фајл ажурирања.
+
+Прототип:
+
+[source, C]
+----
+int weechat_upgrade_read (struct t_upgrade_file *upgrade_file);
+----
+
+Аргументи:
+
+* _upgrade_file_: показивач на фајл ажурирања
+
+Повратна вредност:
+
+* 1 ако је све OK, 0 у случају грешке
+
+C пример:
+
+[source, C]
+----
+weechat_upgrade_read (upgrade_file);
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def upgrade_read(upgrade_file: str) -> int: ...
+
+# пример
+weechat.upgrade_read(upgrade_file)
+----
+
+==== upgrade_close
+
+Затвара фајл ажурирања.
+
+Прототип:
+
+[source, C]
+----
+void weechat_upgrade_close (struct t_upgrade_file *upgrade_file);
+----
+
+Аргументи:
+
+* _upgrade_file_: показивач на фајл ажурирања
+
+C пример:
+
+[source, C]
+----
+weechat_upgrade_close (upgrade_file);
+----
+
+Скрипта (Python):
+
+[source, python]
+----
+# прототип
+def upgrade_close(upgrade_file: str) -> int: ...
+
+# пример
+weechat.upgrade_close(upgrade_file)
+----
diff --git a/doc/sr/weechat_quickstart.sr.adoc b/doc/sr/weechat_quickstart.sr.adoc
new file mode 100644
index 000000000..f9fab44b9
--- /dev/null
+++ b/doc/sr/weechat_quickstart.sr.adoc
@@ -0,0 +1,334 @@
+= WeeChat водич за брзи почетак
+:author: Sébastien Helleu
+:email: flashcode@flashtux.org
+:lang: sr
+:toc: left
+:toc-title: Садржај
+:sectnums:
+:docinfo1:
+
+
+[[start]]
+== Покретање програма WeeChat
+
+Препоручени (али не и обавезни) X терминал емулатор за покретање програма WeeChat је rxvt-unicode. Он поседује добру UTF-8 подршку и лепо ради са подразумеваним тастерским пречицама програма WeeChat.
+
+Покретање из вашег командног окружења:
+
+----
+$ weechat
+----
+
+[[help]]
+== Помоћ током извршавања
+
+Програм WeeChat поседује помоћ за све команде, једноставно откуцајте:
+
+----
+/help
+----
+
+Ако желите да добијете помоћ за одређену команду, откуцајте:
+
+----
+/help команда
+----
+
+Помоћ постоји и за опције:
+
+----
+/help конфиг.одељак.опција
+----
+
+(где је `конфиг` име конфикурације (`weechat` за језгро, или име додатка), `одељак` је одељак ове конфигурације и `опција` је име опције).
+
+[[options]]
+== Постављање опција
+
+Да бисте поставили опције, извршите:
+
+----
+/set конфиг.одељак.опција вредност
+----
+
+Програм WeeChat тренутно користи нову вредност (након измена конфигурације, *никада* не морате поново да покренете програм WeeChat).
+
+Када програм WeeChat завршава извршавање, сва подешавања се чувају (или командом `/save` којом форсирате уписивање опција).
+
+[IMPORTANT]
+*Не препоручује* се ручно уређивање конфигурационих фајлова јер програм WeeChat може да их упише у било које време (на пример када извршава `/quit`) и након сваке измене морате извршити команду `/reload` (уз ризик да изгубите остале измене које још увек нисте сачували са `/save`). + Можете употребити команду `/set` која проверава вредност и тренутно примењује измене.
+
+Додатак _fset_ вам омогућава да једноставно прегледате опције и да их мењате.
+
+На пример, да бисте приказали WeeChat опције:
+
+----
+/fset weechat.*
+----
+
+IRC опције:
+
+----
+/fset irc.*
+----
+
+Команда `/fset` поседује довршавање дела имена опције, тако да ако на пример, откуцате `/fset hot` и притиснете kbd:[Tab] то се довршава као `/fset hotlist`. Ако притиснете kbd:[Enter], приказују се опције везане за врућу листу.
+
+За више информација у вези команде `/fset` и тастера, погледајте `/help fset`.
+
+[[core_vs_plugins]]
+== Језгро и додаци
+
+WeeChat „језгро” се користи само за приказ података на екран и за интеракцију са корисником; то значи да је weechat језгро без додатака потпуно бескорисно (верни корисници: IRC је био део језгра у верзијама ≤ 0.2.6).
+
+Сви мрежни протоколи као што је IRC су имплементирани у одвојеним додацима.
+
+Да бисте видели листу учитаних додатака, употребите команду `/plugin`, у листи би требало да видите „irc” и остале додатке.
+
+[[add_irc_server]]
+== Додавање IRC сервера
+
+IRC сервер можете додати командом `/server`, на пример:
+
+----
+/server add libera irc.libera.chat/6697 -ssl
+----
+
+`freenode` је у овој команди интерно име сервера које користи програм WeeChat: касније ћете моћи да се повежете са њим помоћу `/connect libera`, а опције сервера су _irc.server.libera.xxx_.
+
+Као и обично, ако се збуните доступна вам је помоћ:
+
+----
+/help server
+----
+
+[[irc_server_options]]
+== Постављање прилагођених опција IRC сервера
+
+Програм WeeChat користи подразумеване вредности за све сервере („вредности у крајњем случају”), онда када не наведете одређену вредност за опцију сервера. Ове подразумеване опције су „irc.server_default.*”.
+
+За сваку опцију сервера, програм WeeChat користи њену вредност ако је дефинисана (није „null”). У супротном, програм WeeChat користи подразумевану вредност („irc.server_default.xxx”).
+
+Постоје на пример, подразумевани надимци (засновани на вашем un*x корисничком имену), па можете да их преиначите за libera сервер следећом командом:
+
+----
+/set irc.server.libera.nicks "mynick,mynick2,mynick3,mynick4,mynick5"
+----
+
+Ако желите да поставите корисничко и реално име:
+
+----
+/set irc.server.libera.username "Моје корисничко име"
+/set irc.server.libera.realname "Моје реално име"
+----
+
+Ако желите да укључите ауто повезивање са сервером током покретања програма:
+
+----
+/set irc.server.libera.autoconnect on
+----
+
+Ако сервер подржава SASL, можете да га користите за аутентификацију (бићете идентификовани пре него што приступите каналима):
+
+----
+/set irc.server.libera.sasl_username "mynick"
+/set irc.server.libera.sasl_password "xxxxxxx"
+----
+
+Ако након повезивања са сервером желите да покренете команду, на пример за аутентификацију са nickserv (само ако не користите SASL за аутентификацију):
+
+----
+/set irc.server.libera.command "/msg nickserv identify xxxxxxx"
+----
+
+[NOTE]
+Више команди у опцији _command_ можете да раздвојите са `;` (тачка зарез).
+
+Ако желите да заштитите своју лозинку у конфигурационим фајловима, можете да користите обезбеђене податке.
+
+Најпре поставите тајну реченицу:
+
+----
+/secure passphrase ово је моја тајна реченица
+----
+
+Затим додајте осигуране податке својом libera лозинком:
+
+----
+/secure set libera_password xxxxxxx
+----
+
+Затим у IRC опцијама поменутим изнад, уместо своје лозинке можете да користите `+${sec.data.libera_password}+`, на пример:
+
+----
+/set irc.server.libera.sasl_password "${sec.data.libera_password}"
+----
+
+Ако желите да се неким каналима аутоматски приступи када се повежете на сервер:
+
+----
+/set irc.server.libera.autojoin "#канал1,#канал2"
+----
+
+[TIP]
+Име и вредност опција можете да довршите тастером kbd:[Tab] и kbd:[Shift+Tab] за делимично довршавање (корисно је за дугачке речи као што је име опције).
+
+Ако желите да уклоните вредност опције сервера и да уместо ње користите подразумевану вредност, на пример, да се користе подразумевани надимци (irc.server_default.nicks):
+
+----
+/unset irc.server.libera.nicks
+----
+
+Остале опције: можете да поставите остале опције командом („xxx” је име опције):
+
+----
+/set irc.server.libera.xxx вредност
+----
+
+[[connect_to_irc_server]]
+== Повезивање са IRC сервером
+
+----
+/connect libera
+----
+
+Овом командом, програм WeeChat се повезује са libera сервером и аутоматски приступа каналима конфигурисаним „autojoin” опцијом сервера.
+
+[NOTE]
+Ова команда може да се искористи за креирање и повезивање са новим сервером без употребе команде `/server` (погледајте `/help connect`).
+
+Подразумевано, бафери сервера се спајају са WeeChat _језгро_ бафером. Ако желите да се пребацујете између _језгро_ бафера и серверских бафера, можете да употребите kbd:[Ctrl+x].
+
+Могуће је да се искључи аутоматско спајање серверских бафера тако да имате независне серверске бафере:
+
+----
+/set irc.look.server_buffer independent
+----
+
+[[join_part_irc_channels]]
+== Join/part (приступ/напуштање) IRC канала
+
+Приступ каналу:
+
+----
+/join #канал
+----
+
+Напуштање канала (уз остављање отвореног бафера):
+
+----
+/part [порука о напуштању]
+----
+
+Затварање бафера сервера, канала или приватног бафера (`/close` је алијас за `/buffer close`):
+
+----
+/close
+----
+
+[WARNING]
+Затварање бафера сервера ће затворити и све бафере канала и приватне бафере.
+
+Прекид везе са сервером, у баферу сервера:
+
+----
+/disconnect
+----
+
+
+[[irc_private_messages]]
+== IRC приватне поруке
+
+Отварање бафера и слање поруке другом кориснику (надимак _foo_):
+
+----
+/query foo ово је порука
+----
+
+Затварање приватног бафера:
+
+----
+/close
+----
+
+[[buffer_window]]
+== Управљање баферима/прозорима
+
+Бафер је компонента повезана са додатком која има број, категорију и име. Бафер садржи податке који се приказују на екрану.
+
+Прозор је поглед на бафер. Подразумевано постоји само један прозор који приказује један бафер. Ако поделите екран, видећете више прозора са више бафера у исто време.
+
+Команде којима се управља баферима и прозорима:
+
+----
+/buffer
+/window
+----
+
+На пример, ако желите да свој екран поделите по вертикали на мали прозор (1/3 ширине), и велики прозор (2/3), употребите команду:
+
+----
+/window splitv 33
+----
+
+Ако желите да уклоните поделу:
+
+----
+/window merge
+----
+
+[[key_bindings]]
+== Тастерске пречице
+
+Програм WeeChat подразумевано користи многе тастере. Сви они се налазе у документацији, али би требало да знате барем оне најважније:
+
+- kbd:[Alt+←] / kbd:[Alt+→] или kbd:[F5] / kbd:[F6]: прелаз на претходни/наредни бафер
+- kbd:[F1] / kbd:[F2]: скроловање линије са листом бафера („buflist”)
+- kbd:[F7] / kbd:[F8]: прелаз на претходни/наредни прозор (када је екран издељен)
+- kbd:[F9] / kbd:[F10]: скроловање насловне траке
+- kbd:[F11] / kbd:[F12]: скроловање листе надимака
+- kbd:[Tab]: довршавање текста у траци за унос, као у вашем командном окружењу
+- kbd:[PgUp] / kbd:[PgDn]: скроловање текста у текућем баферу
+- kbd:[Alt+a]: скок на бафер са активношћу (у врућој листи)
+
+У зависности од ваше тастатуре и/или ваших потреба, можете поново да вежете команду помоћу `/key` команде. Користан тастер је kbd:[Alt+k] којим можете да пронађете кодове тастера.
+
+На пример, ако желите да вежете kbd:[Alt+!] са командом `/buffer close`:
+
+----
+/key bind (притисните alt-k) (притисните alt-!) /buffer close
+----
+
+Добићете следећу командну линију:
+
+----
+/key bind meta-! /buffer close
+----
+
+Ако желите да уклоните тастер:
+
+----
+/key unbind meta-!
+----
+
+[[plugins_scripts]]
+== Додаци/скрипте
+
+На неким дистрибуцијама као што је Debian, додаци су доступни кроз посебан пакет (као што је weechat-plugins). Додаци се аутоматски учитавају када се пронађу (молимо вас да погледате документацију програма WeeChat у вези учитавања/уклањања из меморије додатака или скрипти).
+
+За програм WeeChat су доступне многе спољне скрипте (које су приложили корисници), можете да их преузмете и инсталирате из репозиторијума командом `/script`, на пример:
+
+----
+/script install go.py
+----
+
+За више детаља погледајте `/help script`.
+
+Листа скрипти је доступна у програму WeeChat командом `/script` или на URL адреси: https://weechat.org/scripts
+
+[[more_doc]]
+== Још документације
+
+Сада можете почети са коришћењем програма WeeChat и ако имате нека друга питања, прочитајте ЧПП/документацију: https://weechat.org/doc
+
+Уживајте у коришћењу програма WeeChat!
diff --git a/doc/sr/weechat_relay_protocol.sr.adoc b/doc/sr/weechat_relay_protocol.sr.adoc
new file mode 100644
index 000000000..2d6cb3cc3
--- /dev/null
+++ b/doc/sr/weechat_relay_protocol.sr.adoc
@@ -0,0 +1,2649 @@
+= WeeChat Релеј протокол
+:author: Sébastien Helleu
+:email: flashcode@flashtux.org
+:lang: sr
+:toc: left
+:toclevels: 3
+:toc-title: Садржај
+:sectnums:
+:docinfo1:
+
+
+[[introduction]]
+== Увод
+
+Овај документ је спецификација WeeChat Релеј протокола: протокола који се користи за прослеђивање WeeChat података клојентима, који су углавном удаљени интерфејси.
+
+[[terminology]]
+=== Терминологија
+
+У документу се користе следећи изрази:
+
+* _релеј_: то је програм WeeChat са релеј додатком, који се понаша као „сервер” и дозвољава _клијентима_ да успоставе везу са њим
+* _клијент_: оно је неки други софтвер, повезан са _релејем_ преком мрежне везе; у већини случајева, овај _клијент_ је удаљени интерфејс.
+
+[[network_diagram]]
+=== Мрежни дијаграм
+
+_клијенти_ су повезани са _релејем_ као што је приказано на следећем дијаграму:
+
+....
+ ┌───────────┐ Радна станица
+ ┌────────┐ ┌───┤ клијент 1 │ (Linux, Windows,
+ │ irc │◄──┐ ╔═══════════╤═══════╗ │ └───────────┘ BSD, macOS...)
+ └────────┘ └──╢ │ ║◄───┘ ┌───────────┐
+ ...... ║ WeeChat │ Релеј ║◄───────┤ клијент 2 │ Мобилни уређај
+ ┌────────┐ ┌──╢ │ ║◄───┐ └───────────┘ (Android, iPhone...)
+ │ jabber │◄──┘ ╚═══════════╧═══════╝ │ ......
+ └────────┘ │ ┌───────────┐
+ ...... └───┤ клијент N │ Остали уређаји
+ └───────────┘
+
+
+└────────────┘ └───────────────────┘╘══════╛└────────────────────────────────┘
+мрежни сервери ncurses интерфејс релеј удаљени интерфејси
+ протокол
+....
+
+[NOTE]
+Сви клијенти овде су клијенти који користе _weechat_ протокол у _релеј_ додатку. _релеј_ додатак такође дозвољава IRC клијенте, па се онда _релеј_ додатак понаша као _IRC прокси_ (није описан у овом документу).
+
+[[protocol_generalities]]
+== Уопштено о протоколу
+
+* Везе од _клијента_ ка _релеју_ се успостављају преко TCP сокета на IP/порту који користи _релеј_ додатак који ослушкује нове везе.
+* Број _клијената_ је ограничен опцијом _relay.network.max_clients_.
+* Сваки _клијент_ је независан у односу на остале клијенте.
+* Поруке од _клијента_ ка _релеју_ се називају _команде_, а шаљу се као текст (то јест стринг).
+* Поруке од _релеја_ ка _клијенту_ се називају _поруке_, а шаљу се као бинарни подаци.
+
+[[commands]]
+== Команде (клијент → релеј)
+
+Команде имају следећи формат:
+
+----
+(id) команда аргументи\n
+----
+
+Поља су следећа:
+
+* _id_: необавезни идентификатор поруке који ће се послати уз одговор _релеја_; мора да се постави унутар заграда и не сме да почне доњом цртом (идентификатори који почињу доњом цртом су резервисани за WeeChat _event_ поруке)
+* _команда_: команда (погледајте табелу испод)
+* _аргументи_: необавезни аргументи команде (више аргумената може да се раздвоји размацима).
+
+Листа доступних команди (детаљи су у наредним поглављима):
+
+[width="100%", cols="^3m,14", options="header"]
+|===
+| Команда | Опис
+| handshake | Руковање: припрема за аутентификацију клијента и постављање опција, пре _init_ команде.
+| init | Аутентификација са _релејем_.
+| hdata | Захтев за _hdata_.
+| info | Захтев за _инфо_.
+| infolist | Захтев за _инфолисту_.
+| nicklist | Захтев за _листу надимака_.
+| input | Слање података у бафер (текст или команда).
+| completion | Захтев за довршавање стринга.
+| sync | Синхронизација бафера: преузимање ажурирања бафера.
+| desync | Десинхронизација бафера: прекид ажурирања бафера.
+| quit | Раскидање везе са _релејем_.
+|===
+
+[[command_handshake]]
+=== handshake
+
+_WeeChat ≥ 2.9._
+
+Извршава руковање између клијента и програма WeeChat: ово је у већини случајева неопходно како би се сазнале поставке сесије и припремила аутентификација командом _init_.
+
+Пре _init_ команде је дозвољено само једно руковање.
+
+Синтакса:
+
+----
+(id) handshake [<опција>=<вредност>,[<опција>=<вредност>,...]]
+----
+
+Аргументи:
+
+* _опција_: једна од следећих опција:
+** _password_hash_algo_: листа хеш алгоритама које подржава клијент (раздвојене са две тачке), дозвољене су следеће вредности:
+*** _plain_: чиста текст лозинка (без хеша)
+*** _sha256_: лозинка засољена и хеширана SHA256 алгоритмом
+*** _sha512_: лозинка засољена и хеширана SHA512 алгоритмом
+*** _pbkdf2+sha256_: лозинка засољена и хеширана PBKDF2 алгоритмом (користећи SHA256 хеш)
+*** _pbkdf2+sha512_: лозинка засољена и хеширана PBKDF2 алгоритмом (користећи SHA512 хеш)
+** _compression_: тип компресије:
+*** _zlib_: укључује _zlib_ компресију порука које шаље _релеј_ (подразумевано је укључено ако _релеј_ подржава _zlib_ компресију)
+*** _off_: искључује компресију
+
+Напомене у вези опције _password_hash_algo_:
+
+* Ако се опција не наведе (или ако клијент није послао _handshake_ команду), _релеј_ аутоматски користи _plain_ аутентификацију (ако је дозвољена на _релеј_ страни).
+* _Релеј_ бира најсигурнији алгоритам који је доступан и на _клијенту_ и на _релеју_, према редоследу приоритета од првог (најсигурнијег) до последње коришћеног:
+ . _pbkdf2+sha512_
+ . _pbkdf2+sha256_
+ . _sha512_
+ . _sha256_
+ . _plain_
+
+Програм WeeChat одговара са хеш табелом која садржи следеће кључеве и вредности:
+
+* _password_hash_algo_: договорена аутентификација лозинком: подржавају је и _клијент_both и _релеј_:
+** (празна вредност): договор није успео, *НИЈЕ* могућа аутентификација лозинком; у овом случају се веза са клијентом тренутно прекида.
+** _plain_
+** _sha256_
+** _sha512_
+** _pbkdf2+sha256_
+** _pbkdf2+sha512_
+* _password_hash_iterations_: број итерација за (само за PBKDF2 алгоритам)
+* _totp_:
+** _on_: Time-based One-Time Password (TOTP) је конфигурисана и очекује се у _init_ команди
+** _off_: Time-based One-Time Password (TOTP) је искључена и није потребна у _init_ команди
+* _nonce_: бафер бајтова који не могу да се предвиде, послат као хексадецимална вредност, којом се спречавају replay напади; ако је _password_hash_algo_ хеш алгоритам, клијент мора да израчуна хеш лозинке над овим нонсом, спојено са клијентовим нонсом и корисничком лозинком (_релеј_ нонс + _клијент_ нонс је со која се користи у алгоритму хеширања лозинке)
+* _compression_: тип компресије:
+** _zlib_: поруке су компресоване са _zlib_
+** _off_: поруке се не компресују
+
+[TIP]
+У програму WeeChat верзије ≤ 2.8, команда _handshake_ није имплементирана, програм WeeChat једноставно игнорише ову команду, чак и ако се пошаље пре _init_ команде. + Тако да је безбедно послати ову поруку програму WeeChat било које верзије.
+
+Примери:
+
+* Клијент није ништа понудио, користиће се "plain" аутентификација лозинком ако је то дозвољено на релеј страни:
+
+----
+(handshake) handshake
+----
+
+Одговор:
+
+[source, python]
+----
+id: 'handshake'
+htb: {
+ 'password_hash_algo': 'plain',
+ 'password_hash_iterations': '100000',
+ 'totp': 'on',
+ 'nonce': '85B1EE00695A5B254E14F4885538DF0D',
+ 'compression': 'zlib',
+}
+----
+
+* Клијент подржава само „plain”:
+
+----
+(handshake) handshake password_hash_algo=plain
+----
+
+Одговор:
+
+[source, python]
+----
+id: 'handshake'
+htb: {
+ 'password_hash_algo': 'plain',
+ 'password_hash_iterations': '100000',
+ 'totp': 'on',
+ 'nonce': '85B1EE00695A5B254E14F4885538DF0D',
+ 'compression': 'zlib',
+}
+----
+
+* Клијент подржава само „plain”, „sha256” и „pbkdf2+sha256”:
+
+----
+(handshake) handshake password_hash_algo=plain:sha256:pbkdf2+sha256
+----
+
+Одговор:
+
+[source, python]
+----
+id: 'handshake'
+htb: {
+ 'password_hash_algo': 'pbkdf2+sha256',
+ 'password_hash_iterations': '100000',
+ 'totp': 'on',
+ 'nonce': '85B1EE00695A5B254E14F4885538DF0D',
+ 'compression': 'zlib',
+}
+----
+
+Клијент може да се аутентификује следећом командом (погледајте <<command_init,init команду>>), со је _relay_ нонс + _client_ нонс („A4B73207F5AAE4” хексадецимално), лозинка је „test” у овом примеру:
+
+----
+init password_hash=pbkdf2+sha256:85b1ee00695a5b254e14f4885538df0da4b73207f5aae4:100000:ba7facc3edb89cd06ae810e29ced85980ff36de2bb596fcf513aaab626876440
+----
+
+* Клијент подржава само „sha256” и „sha512”, компресије се искључује:
+
+----
+(handshake) handshake password_hash_algo=sha256:sha512,compression=off
+----
+
+Одговор:
+
+[source, python]
+----
+id: 'handshake'
+htb: {
+ 'password_hash_algo': 'sha512',
+ 'password_hash_iterations': '100000',
+ 'totp': 'on',
+ 'nonce': '85B1EE00695A5B254E14F4885538DF0D',
+ 'compression': 'off',
+}
+----
+
+[[command_init]]
+=== init
+
+_Ажурирано у верзијама 2.4, 2.8, 2.9._
+
+Аутентификација са _релејем_.
+
+Ово мора бити прва команда која се шаље _релеју_ (пре _init_ сме да се пошаље једино команда _handshake_). + Ако се не пошаље, _релеј_ ће без упозорења да раскине везу чим прими прву следећу команду (осим _handshake_).
+
+Синтакса:
+
+----
+(id) init [<опција>=<вредност>,[<опција>=<вредност>,...]]
+----
+
+Аргументи:
+
+* _опција_: једна од следећих опција:
+** _password_: лозинка која се користи за аутентификацију са _релејем_ (опција _relay.network.password_ у програму WeeChat)
+** _password_hash_: хеш лозинке која се користи за аутентификацију са _релејем_ (опција _relay.network.password_ у програму WeeChat), погледајте испод за формат _(WeeChat ≥ 2.8)_
+** _totp_: Time-based One-Time Password (TOTP) која се користи као секундарни фактор аутентификације, уз лозинку (опција _relay.network.totp_secret_ у програму WeeChat) _(WeeChat ≥ 2.4)_
+** _compression_: тип компресије (*превазиђено* почевши од верзије 2.9, остало је из разлога компатибилности, али ви требало да се пошаље у <<command_handshake,handshake команди>>):
+*** _zlib_: укључује _zlib_ компресију порука које шаље _релеј_ (подразумевано је укључено ако _релеј_ подржава _zlib_ компресију)
+*** _off_: искључује компресију
+
+[NOTE]
+У програму WeeChat верзије ≥ 1.6, у вредности могу да се означе запете, на пример `+init password=foo\,bar+` када желите да пошаљете лозинку „foo,bar”.
+
+Формат хеширане лозинке је једно од следећег, где је _хеш_ хеширана лозинка као хексадецимална вредност:
+
+* `+sha256:со:хеш+` где је :
+** _со_: со (хексадецимално), која мора да почиње са северовим нонсом, на који је надовезан клијентов нонс
+** _хеш_: хеширана со + лозинка (хексадецимално)
+* `+sha512:со:хеш+` где је:
+** _со_: со (хексадецимално), која мора да почиње са северовим нонсом, на који је надовезан клијентов нонс
+** _хеш_: хеширана со + лозинка (хексадецимално)
+* `+pbkdf2+sha256:со:итерација:хеш+` где је:
+** _со_: со (хексадецимално), која мора да почиње са северовим нонсом, на који је надовезан клијентов нонс
+** _iterations_: број итерација
+** _хеш_: со + лозинка хеширана SHA256 алгоритмом (хексадецимално)
+* `+pbkdf2+sha512:со:итерација:хеш+` где је:
+** _со_: со (хексадецимално), која мора да почиње са северовим нонсом, на који је надовезан клијентов нонс
+** _iterations_: број итерација
+** _хеш_: со + лозинка хеширана SHA512 алгоритмом (хексадецимално)
+
+[NOTE]
+Хексадецимални стрингови могу бити исписани малим или великим словима, _релеј_ може да декодира оба.
+
+Примери:
+
+* Иницијализација лозинком:
+
+----
+init password=мојалозинка
+----
+
+* Иницијализација са запетама у лозинки _(WeeChat ≥ 1.6)_:
+
+----
+init password=мојалозинка\,са\,запетама
+----
+
+* Иницијализација са лозинком и TOTP _(WeeChat ≥ 2.4)_:
+
+----
+init password=мојалозинка,totp=123456
+----
+
+* Иницијализација са хешираном лозинком „test” (SHA256: со=релеј нонс + клијент нонс) _(WeeChat ≥ 2.9)_:
+
+----
+init password_hash=sha256:85b1ee00695a5b254e14f4885538df0da4b73207f5aae4:2c6ed12eb0109fca3aedc03bf03d9b6e804cd60a23e1731fd17794da423e21db
+----
+
+* Иницијализација са хешираном лозинком „test” (SHA512: со=релеј нонс + клијент нонс) _(WeeChat ≥ 2.9)_:
+
+----
+init password_hash=sha512:85b1ee00695a5b254e14f4885538df0da4b73207f5aae4:0a1f0172a542916bd86e0cbceebc1c38ed791f6be246120452825f0d74ef1078c79e9812de8b0ab3dfaf598b6ca14522374ec6a8653a46df3f96a6b54ac1f0f8
+----
+
+* Иницијализација са хешираном лозинком „test” (PBKDF2: SHA256, со=релеј нонс + клијент нонс, 100000 итерација) _(WeeChat ≥ 2.9)_:
+
+----
+init password_hash=pbkdf2+sha256:85b1ee00695a5b254e14f4885538df0da4b73207f5aae4:100000:ba7facc3edb89cd06ae810e29ced85980ff36de2bb596fcf513aaab626876440
+----
+
+[[command_hdata]]
+=== hdata
+
+Захтев за _hdata_.
+
+Синтакса:
+
+----
+(id) hdata <путања> [<кључеви>]
+----
+
+Аргументи:
+
+* _путања_: путања до hdata, у формату: „hdata:показивач/пром/пром/.../пром”, последња пром је враћени hdata:
+** _hdata_: име hdata
+** _показивач_: показивач (нпр.: „0x1234abcd”) или име листе (на пример: „gui_buffers”) (дозвољен је број понављања, погледајте испод)
+** _пром_: име променљиве у родитељском hdata (претходно име на путањи) (дозвољен је број понављања, погледајте испод)
+* _кључеви_: листа кључева раздвојених запетама у које се враћају hdata (ако се не наведе, враћају се сви кључеви, што се не препоручује код великих hdata структура)
+
+Број понављања се дозвољава након показивача и променљивих, у формату „(N)”. Могуће су следеће вредности:
+
+* позитивни број: итерира се користећи следећи елемент, N пута
+* негативни број: итерира се користећи претходни елемент, N пута
+* _*_: итерира се користећи наредни елемент, све до краја листе
+
+[NOTE]
+У програму WeeChat верзије ≥ 1.6, у случају да је hdata путања неисправна или ако се наиђе на NULL показивач, враћа се празан hdata (погледајте пример у <<object_hdata,hdata објекат>>). + У старијим верзијама, не враћа се ништа.
+
+Примери:
+
+* Захтев за „number” и „full_name” свих бафера:
+
+----
+(hdata_buffers) hdata buffer:gui_buffers(*) number,full_name
+----
+
+Одговор:
+
+[source, python]
+----
+id: 'hdata_buffers'
+hda:
+ keys: {
+ 'number': 'int',
+ 'full_name': 'str',
+ }
+ path: ['buffer']
+ item 1:
+ __path: ['0x558d61ea3e60']
+ number: 1
+ full_name: 'core.weechat'
+ item 2:
+ __path: ['0x558d62840ea0']
+ number: 1
+ full_name: 'irc.server.libera'
+ item 3:
+ __path: ['0x558d62a9cea0']
+ number: 2
+ full_name: 'irc.libera.#weechat'
+----
+
+* Захтев за свим линијама првог бафера:
+
+----
+(hdata_lines) hdata buffer:gui_buffers/own_lines/first_line(*)/data
+----
+
+Одговор:
+
+[source, python]
+----
+id: 'hdata_lines'
+hda:
+ keys: {
+ 'buffer': 'ptr',
+ 'y': 'int',
+ 'date': 'tim',
+ 'date_printed': 'tim',
+ 'str_time': 'str',
+ 'tags_count': 'int',
+ 'tags_array': 'arr',
+ 'displayed': 'chr',
+ 'notify_level': 'chr',
+ 'highlight': 'chr',
+ 'refresh_needed': 'chr',
+ 'prefix': 'str',
+ 'prefix_length': 'int',
+ 'message': 'str',
+ }
+ path: ['buffer', 'lines', 'line', 'line_data']
+ item 1:
+ __path: ['0x558d61ea3e60', '0x558d61ea40e0', '0x558d62920d80', '0x558d62abf040']
+ buffer: '0x558d61ea3e60'
+ y: -1
+ date: 1588404926
+ date_printed: 1588404926
+ str_time: 'F@0025209F@0024535F@0024026'
+ tags_count: 0
+ tags_array: []
+ displayed: 1
+ notify_level: 0
+ highlight: 0
+ refresh_needed: 0
+ prefix: ''
+ prefix_length: 0
+ message: 'ово је прва линија'
+ item 2:
+ __path: ['0x558d61ea3e60', '0x558d61ea40e0', '0x558d626779f0', '0x558d62af9700']
+ buffer: '0x558d61ea3e60'
+ y: -1
+ date: 1588404930
+ date_printed: 1588404930
+ str_time: 'F@0025209F@0024535F@0024030'
+ tags_count: 0
+ tags_array: []
+ displayed: 1
+ notify_level: 0
+ highlight: 0
+ refresh_needed: 0
+ prefix: ''
+ prefix_length: 0
+ message: 'ово је друга линија'
+----
+
+* Захтев за садржај вруће листе:
+
+----
+(hdata_hotlist) hdata hotlist:gui_hotlist(*)
+----
+
+Одговор:
+
+[source, python]
+----
+id: 'hdata_hotlist'
+hda:
+ keys: {
+ 'priority': 'int',
+ 'creation_time.tv_sec': 'tim',
+ 'creation_time.tv_usec': 'lon',
+ 'buffer': 'ptr',
+ 'count': 'arr',
+ 'prev_hotlist': 'ptr',
+ 'next_hotlist': 'ptr',
+ }
+ path: ['hotlist']
+ item 1:
+ __path: ['0x558d629601b0']
+ priority: 3
+ creation_time.tv_sec: 1588405398
+ creation_time.tv_usec: 355383
+ buffer: '0x558d62a9cea0'
+ count: [1, 1, 0, 1]
+ prev_hotlist: '0x0'
+ next_hotlist: '0x0'
+----
+
+[[command_info]]
+=== info
+
+Захтев за _инфо_.
+
+Синтакса:
+
+----
+(id) info <име> [<аргументи>]
+----
+
+Аргументи:
+
+* _име_: име информације која се захтева
+* _аргументи_: аргументи (није обавезно)
+
+Примери:
+
+* Захтев за верзију програма WeeChat:
+
+----
+(info_version) info version
+----
+
+Одговор:
+
+[source, python]
+----
+id: 'info_version'
+inf: ('version', '2.9-dev')
+----
+
+* Захтев за верзију програма WeeChat као број:
+
+----
+(info_version_number) info version_number
+----
+
+Одговор:
+
+[source, python]
+----
+id: 'info_version_number'
+inf: ('version_number', '34144256')
+----
+
+* Захтев за WeeChat директоријум:
+
+----
+(info_weechat_config_dir) info weechat_config_dir
+----
+
+Одговор:
+
+[source, python]
+----
+id: 'info_weechat_config_dir'
+inf: ('weechat_config_dir', '/home/user/.config/weechat')
+----
+
+[[command_infolist]]
+=== infolist
+
+Захтев _инфолисте_.
+
+[IMPORTANT]
+Садржај инфолисте је дупликат стварних података. Кадгод је то могуће, употребите команду <<command_hdata,hdata>>, која обезбеђује директан приступ подацима (бржа је, користи мање меморије и враћа мање објекте у поруци).
+
+Синтакса:
+
+----
+(id) infolist <име> [<показивач> [<аргументи>]]
+----
+
+Аргументи:
+
+* _име_: име жељене инфолисте
+* _показивач_: показивач (није обавезан)
+* _аргументи_: аргументи (није обавезно)
+
+Примери:
+
+* Захтев за „buffer” инфолисту:
+
+----
+(infolist_buffer) infolist buffer
+----
+
+Одговор:
+
+[source, python]
+----
+id: 'infolist_buffer'
+inl:
+ name: buffer
+ item 1:
+ pointer: '0x558d61ea3e60'
+ current_buffer: 1
+ plugin: '0x0'
+ plugin_name: 'core'
+ number: 1
+ layout_number: 1
+ layout_number_merge_order: 0
+ name: 'weechat'
+ full_name: 'core.weechat'
+ old_full_name: None
+ short_name: 'weechat'
+ type: 0
+ notify: 3
+ num_displayed: 1
+ active: 1
+ hidden: 0
+ zoomed: 0
+ print_hooks_enabled: 1
+ day_change: 1
+ clear: 1
+ filter: 1
+ closing: 0
+ first_line_not_read: 0
+ lines_hidden: 0
+ prefix_max_length: 0
+ time_for_each_line: 1
+ nicklist_case_sensitive: 0
+ nicklist_display_groups: 1
+ nicklist_max_length: 0
+ nicklist_count: 0
+ nicklist_groups_count: 0
+ nicklist_nicks_count: 0
+ nicklist_visible_count: 0
+ title: 'WeeChat 2.9-dev (C) 2003-2020 - https://weechat.org/'
+ input: 1
+ input_get_unknown_commands: 0
+ input_get_empty: 0
+ input_multiline: 0
+ input_buffer: ''
+ input_buffer_alloc: 256
+ input_buffer_size: 0
+ input_buffer_length: 0
+ input_buffer_pos: 0
+ input_buffer_1st_display: 0
+ num_history: 0
+ text_search: 0
+ text_search_exact: 0
+ text_search_regex: 0
+ text_search_regex_compiled: '0x0'
+ text_search_where: 0
+ text_search_found: 0
+ text_search_input: None
+ highlight_words: None
+ highlight_regex: None
+ highlight_regex_compiled: '0x0'
+ highlight_tags_restrict: None
+ highlight_tags: None
+ hotlist_max_level_nicks: None
+ keys_count: 0
+ localvar_name_00000: 'plugin'
+ localvar_value_00000: 'core'
+ localvar_name_00001: 'name'
+ localvar_value_00001: 'weechat'
+----
+
+* Захтев за „window” инфолисту:
+
+----
+(infolist_window) infolist window
+----
+
+Одговор:
+
+[source, python]
+----
+id: 'infolist_window'
+inl:
+ name: window
+ item 1:
+ pointer: '0x558d61ddc800'
+ current_window: 1
+ number: 1
+ x: 14
+ y: 0
+ width: 259
+ height: 71
+ width_pct: 100
+ height_pct: 100
+ chat_x: 14
+ chat_y: 1
+ chat_width: 259
+ chat_height: 68
+ buffer: '0x558d61ea3e60'
+ start_line_y: 0
+----
+
+[[command_nicklist]]
+=== nicklist
+
+Захтев _листе надимака_, за један или за све бафере.
+
+Синтакса:
+
+----
+(id) nicklist [<бафер>]
+----
+
+Аргументи:
+
+* _бафер_: показивач (нпр.: „0x1234abcd”) или пуно име бафера (на пример: _core.weechat_ или _irc.libera.#weechat_)
+
+Примери:
+
+* Захтев листе бафера за све бафере:
+
+----
+(nicklist_all) nicklist
+----
+
+Одговор:
+
+[source, python]
+----
+id: 'nicklist_all'
+hda:
+ keys: {
+ 'group': 'chr',
+ 'visible': 'chr',
+ 'level': 'int',
+ 'name': 'str',
+ 'color': 'str',
+ 'prefix': 'str',
+ 'prefix_color': 'str',
+ }
+ path: ['buffer', 'nicklist_item']
+ item 1:
+ __path: ['0x558d61ea3e60', '0x558d61ea4120']
+ group: 1
+ visible: 0
+ level: 0
+ name: 'root'
+ color: None
+ prefix: None
+ prefix_color: None
+ item 2:
+ __path: ['0x558d62840ea0', '0x558d61e75f90']
+ group: 1
+ visible: 0
+ level: 0
+ name: 'root'
+ color: None
+ prefix: None
+ prefix_color: None
+ item 3:
+ __path: ['0x558d62a9cea0', '0x558d62abf2e0']
+ group: 1
+ visible: 0
+ level: 0
+ name: 'root'
+ color: None
+ prefix: None
+ prefix_color: None
+ item 4:
+ __path: ['0x558d62a9cea0', '0x558d62afb9d0']
+ group: 1
+ visible: 1
+ level: 1
+ name: '000|o'
+ color: 'weechat.color.nicklist_group'
+ prefix: None
+ prefix_color: None
+ item 5:
+ __path: ['0x558d62a9cea0', '0x558d62aff930']
+ group: 0
+ visible: 1
+ level: 0
+ name: 'FlashCode'
+ color: 'weechat.color.chat_nick_self'
+ prefix: '@'
+ prefix_color: 'lightgreen'
+ item 6:
+ __path: ['0x558d62a9cea0', '0x558d62af9930']
+ group: 1
+ visible: 1
+ level: 1
+ name: '001|v'
+ color: 'weechat.color.nicklist_group'
+ prefix: None
+ prefix_color: None
+ item 7:
+ __path: ['0x558d62a9cea0', '0x558d62afc510']
+ group: 1
+ visible: 1
+ level: 1
+ name: '999|...'
+ color: 'weechat.color.nicklist_group'
+ prefix: None
+ prefix_color: None
+ item 8:
+ __path: ['0x558d62a9cea0', '0x558d6292c290']
+ group: 0
+ visible: 1
+ level: 0
+ name: 'flashy'
+ color: '142'
+ prefix: ' '
+ prefix_color: 'lightblue'
+ item 9:
+ __path: ['0x558d62914680', '0x558d62afc4b0']
+ group: 1
+ visible: 0
+ level: 0
+ name: 'root'
+ color: None
+ prefix: None
+ prefix_color: None
+----
+
+* Захтев листе надимака за бафер „irc.libera.#weechat”:
+
+----
+(nicklist_weechat) nicklist irc.libera.#weechat
+----
+
+Одговор:
+
+[source, python]
+----
+id: 'nicklist_weechat'
+hda:
+ keys: {
+ 'group': 'chr',
+ 'visible': 'chr',
+ 'level': 'int',
+ 'name': 'str',
+ 'color': 'str',
+ 'prefix': 'str',
+ 'prefix_color': 'str',
+ }
+ path: ['buffer', 'nicklist_item']
+ item 1:
+ __path: ['0x558d62a9cea0', '0x558d62abf2e0']
+ group: 1
+ visible: 0
+ level: 0
+ name: 'root'
+ color: None
+ prefix: None
+ prefix_color: None
+ item 2:
+ __path: ['0x558d62a9cea0', '0x558d62afb9d0']
+ group: 1
+ visible: 1
+ level: 1
+ name: '000|o'
+ color: 'weechat.color.nicklist_group'
+ prefix: None
+ prefix_color: None
+ item 3:
+ __path: ['0x558d62a9cea0', '0x558d62aff930']
+ group: 0
+ visible: 1
+ level: 0
+ name: 'FlashCode'
+ color: 'weechat.color.chat_nick_self'
+ prefix: '@'
+ prefix_color: 'lightgreen'
+ item 4:
+ __path: ['0x558d62a9cea0', '0x558d62af9930']
+ group: 1
+ visible: 1
+ level: 1
+ name: '001|v'
+ color: 'weechat.color.nicklist_group'
+ prefix: None
+ prefix_color: None
+ item 5:
+ __path: ['0x558d62a9cea0', '0x558d62afc510']
+ group: 1
+ visible: 1
+ level: 1
+ name: '999|...'
+ color: 'weechat.color.nicklist_group'
+ prefix: None
+ prefix_color: None
+ item 6:
+ __path: ['0x558d62a9cea0', '0x558d6292c290']
+ group: 0
+ visible: 1
+ level: 0
+ name: 'flashy'
+ color: '142'
+ prefix: ' '
+ prefix_color: 'lightblue'
+----
+
+[[command_input]]
+=== input
+
+Слање података у бафер.
+
+Синтакса:
+
+----
+(id) input <бафер> <подаци>
+----
+
+Аргументи:
+
+* _бафер_: показивач (нпр.: „0x1234abcd”) или пуно име бафера (на пример: _core.weechat_ или _irc.libera.#weechat_)
+* _подаци_: подаци који се шаљу у бафер: ако почињу са `/`, онда ће се извршити као
+ команда у баферу, у супротном се текст шаље као унос у бафер
+
+Примери:
+
+* Слање команде „/help filter” у WeeChat бафер језгра:
+
+----
+input core.weechat /help filter
+----
+
+* Слање поруке „здраво!” на #weechat канал:
+
+----
+input irc.libera.#weechat здраво!
+----
+
+[[command_completion]]
+=== completion
+
+_WeeChat ≥ 2.9._
+
+Захтев за довршавање стринга: листа могућих речи на датој позицији у стрингу за дати бафер.
+
+Синтакса:
+
+----
+(id) completion <бафер> <позиција> [<подаци>]
+----
+
+Аргументи:
+
+* _бафер_: показивач (нпр.: „0x1234abcd”) или пуно име бафера (на пример: _core.weechat_ или _irc.libera.#weechat_)
+* _позиција_: позиција за довршавање у стрингу (почиње од 0); ако је вредност -1, позиција представља дужину _подаци_ (тако да се довршавање ради на крају _подаци_)
+* _подаци_: улазни стринг; ако се не наведе, довршавање се ради за празан стринг
+
+Програм WeeChat одговара са hdata:
+
+[width="100%", cols="3m,2,10", options="header"]
+|===
+| Име | Тип | Опис
+| context | стринг | Контекст довршавања: „null” (без довршавања), „command”, „command_arg”, „auto”.
+| base_word | стринг | Базна реч која се користи за довршавање.
+| pos_start | цео број | Индекс првог карактера који се замењује (почиње од 0).
+| pos_end | цео број | Индекс последњег карактера који се замењује (почиње од 0).
+| add_space | цео број | 1 ако након речи треба додати размак, 0 у супротном.
+| list | низ стрингова | Листа речи; празна ако ништа није пронађено за довршавање на траженој позицији.
+|===
+
+[NOTE]
+У случају грешке, на пример за неважећи бафер или интерну грешку на страни програма WeeChat, враћа се празан hdata.
+
+Примери:
+
+* Довршавање аргумента команде:
+
+----
+(completion_help) completion core.weechat -1 /help fi
+----
+
+Одговор:
+
+[source, python]
+----
+id: 'completion_help'
+hda:
+ keys: {
+ 'context': 'str',
+ 'base_word': 'str',
+ 'pos_start': 'int',
+ 'pos_end': 'int',
+ 'add_space': 'int',
+ 'list': 'arr',
+ }
+ path: ['completion']
+ item 1:
+ __path: ['0x55d0ccc842c0']
+ context: 'command_arg'
+ base_word: 'fi'
+ pos_start: 6
+ pos_end: 7
+ add_space: 0
+ list: [
+ 'fifo',
+ 'fifo.file.enabled',
+ 'fifo.file.path',
+ 'filter',
+ ]
+----
+
+* Довршавање команде у средини речи:
+
+----
+(completion_query) completion core.weechat 5 /quernick
+----
+
+Одговор:
+
+[source, python]
+----
+id: 'completion_query'
+hda:
+ keys: {
+ 'context': 'str',
+ 'base_word': 'str',
+ 'pos_start': 'int',
+ 'pos_end': 'int',
+ 'add_space': 'int',
+ 'list': 'arr',
+ }
+ path: ['completion']
+ item 1:
+ __path: ['0x55d0ccc88470']
+ context: 'command'
+ base_word: 'quer'
+ pos_start: 1
+ pos_end: 4
+ add_space: 1
+ list: ['query']
+----
+
+* Ништа за довршавање:
+
+----
+(completion_abcdefghijkl) completion core.weechat -1 abcdefghijkl
+----
+
+Одговор:
+
+[source, python]
+----
+id: 'completion_abcdefghijkl'
+hda:
+ keys: {
+ 'context': 'str',
+ 'base_word': 'str',
+ 'pos_start': 'int',
+ 'pos_end': 'int',
+ 'add_space': 'int',
+ 'list': 'arr',
+ }
+ path: ['completion']
+ item 1:
+ __path: ['0x55d0ccc88470']
+ context: 'auto'
+ base_word: 'abcdefghijkl'
+ pos_start: 0
+ pos_end: 11
+ add_space: 1
+ list: []
+----
+
+* Довршавање у неважећем баферу:
+
+----
+(completion_help) completion buffer.does.not.exist -1 /help fi
+----
+
+Одговор:
+
+[source, python]
+----
+id: 'completion_help'
+hda:
+ keys: {}
+ path: ['completion']
+----
+
+[[command_sync]]
+=== sync
+
+_Ажурирано у верзији 0.4.1._
+
+Синхронизација једног или више бафера, да би се примиле измене у баферу.
+
+[IMPORTANT]
+Препоручује се да се ова команда пошаље непосредно након што потражите податке из бафера (линије, ...). Може да се пошаље и у истој поруци (након карактера за прелом реда: „\n”).
+
+Синтакса:
+
+----
+(id) sync [<бафер>[,<бафер>...] <опција>[,<опција>...]]
+----
+
+Аргументи:
+
+* _бафер_: показивач (нпр: „0x1234abcd”) или пуно име бафера (на пример: _core.weechat_ или _irc.libera.#weechat_); за навођење свих бафера може да се употреби име „*”
+* _опције_: једна од следећих кључних речи, раздвојених запетама (подразумевано је _buffers,upgrade,buffer,nicklist_ за „*” и _buffer,nicklist_ за бафер):
+** _buffers_: пријем сигнала о баферима (отворен/затворен, премештен, преименован, спојен/раздвојен, скривен/откривен); ово може да се користи само уз име „*” _(WeeChat ≥ 0.4.1)_
+** _upgrade_: пријем сигнала о ажурирању програма WeeChat (ажурирање, ажурирање завршено); ово може да се користи само уз име „*” _(WeeChat ≥ 0.4.1)_
+** _buffer_: пријем сигнала о баферу (нове линије, промењен тип, промењен наслов, додата/уклоњена локална променљива и исти сигнали као код _buffers_ за бафер) _(ажурирано у верзији 0.4.1)_
+** _nicklist_: пријем листе надимака након промена
+
+Примери:
+
+* Синхронизација свих бафера са листом надимака (3 команде су еквивалентне, али се препоручује употреба прве из разлога компатибилности са будућим верзијама):
+
+----
+sync
+sync *
+sync * buffers,upgrade,buffer,nicklist
+----
+
+* Синхронизација WeeChat бафера језгра:
+
+----
+sync core.buffer
+----
+
+* Синхронизација #weechat канала, без листе надимака:
+
+----
+sync irc.libera.#weechat buffer
+----
+
+* Пријем општих сигнала + свих сигнала за канал #weechat:
+
+----
+sync * buffers,upgrade
+sync irc.libera.#weechat
+----
+
+[[command_desync]]
+=== desync
+
+_Ажурирано у верзији 0.4.1._
+
+Десинхронизација једног или више бафера, како би се прекинуло праћење измена.
+
+[NOTE]
+Ово ће уклонити _опције_ за бафере. Ако су неке опције још увек активне за бафере, клијент ће за те бафере наставити да прима ажурирања.
+
+Синтакса:
+
+----
+(id) desync [<бафер>[,<бафер>...] <опција>[,<опција>...]]
+----
+
+Аргументи:
+
+* _бафер_: показивач (нпр: „0x1234abcd”) или пуно име бафера (на пример: _core.weechat_ или _irc.libera.#weechat_); за навођење свих бафера може да се употреби име „*”
+* _опције_: једна од следећих кључних речи, раздвојене запетама (подразумевано је _buffers,upgrade,buffer,nicklist_ за „*” и _buffer,nicklist_ за бафер); погледајте <<command_sync,команду sync>> за вредности
+
+[NOTE]
+Када се користи бафер „*”, остали синхронизовани бафери се задржавају (употребом имена). + Тако да ако пошаљете: „sync *”, па затим „sync irc.libera.#weechat”, па затим „desync *”, програм WeeChat ће наставити да шаље измене канала #weechat (морате експлицитно да га уклоните ако желите да зауставите слања ажурирања).
+
+Примери:
+
+* Десинхронизација свих бафера (3 команде су еквивалентне, али се препоручује употреба прве из разлога компатибилности са будућим верзијама):
+
+----
+desync
+desync *
+desync * buffers,upgrade,buffer,nicklist
+----
+
+* Десинхронизација листе надимака за канал #weechat (остају ажурирања бафера):
+
+----
+desync irc.freenode.#weechat nicklist
+----
+
+* Десинхронизација #weechat канала:
+
+----
+desync irc.libera.#weechat
+----
+
+[[command_test]]
+=== test
+
+Тест команда: програм WeeChat ће вратити одговор са различитим објектима.
+
+Ова команда је корисна за тестирање декодирања бинарних објеката које враћа програм WeeChat.
+
+Синтакса:
+
+----
+(id) test
+----
+
+Враћају се следећи објекти (у наведеном редоследу):
+
+[width="100%", cols="^3,3m,5m", options="header"]
+|===
+| Тип | Тип (у поруци) | Вредност
+| char | chr | 65 ("A")
+| integer | int | 123456
+| integer | int | -123456
+| long | lon | 1234567890
+| long | lon | -1234567890
+| string | str | "a string"
+| string | str | ""
+| string | str | NULL
+| buffer | buf | "buffer"
+| buffer | buf | NULL
+| pointer | ptr | 0x1234abcd
+| pointer | ptr | NULL
+| time | tim | 1321993456
+| array of strings | arr str | [ "abc", "de" ]
+| array of integers | arr int | [ 123, 456, 789 ]
+|===
+
+[IMPORTANT]
+Не смете да користите вредности показивача које врати ова команда, оне нису исправне. Ова команда сме да се користи само за тестирање декодирања поруке коју шаље програм WeeChat.
+
+Пример:
+
+----
+(test) test
+----
+
+Одговор:
+
+----
+id: 'test'
+chr: 65
+int: 123456
+int: -123456
+lon: 1234567890
+lon: -1234567890
+str: 'a string'
+str: ''
+str: None
+buf: 'buffer'
+buf: None
+ptr: '0x1234abcd'
+ptr: '0x0'
+tim: 1321993456
+arr: ['abc', 'de']
+arr: [123, 456, 789]
+----
+
+[[command_ping]]
+=== ping
+
+_WeeChat ≥ 0.4.2._
+
+Шаље пинг програму WeeChat који ће одговорити поруком „_pong” и истим аргументима.
+
+Ова команда је корисна за проверу да ли је веза са програмом WeeChat и даље успостављена и за мерење времена одговора.
+
+Синтакса:
+
+----
+(id) ping [<аргументи>]
+----
+
+Пример:
+
+----
+ping 1370802127000
+----
+
+Одговор:
+
+----
+id:'_pong'
+str: '1370802127000'
+----
+
+[[command_quit]]
+=== quit
+
+Прекид везе са _релејем_.
+
+Синтакса:
+
+----
+(id) quit
+----
+
+Пример:
+
+----
+quit
+----
+
+[[messages]]
+== Поруке (релеј → клијент)
+
+Поруке се шаљу као бинарни подаци, употребом следећег формата (са величином у бајтовима):
+
+....
+┌────────╥─────────────╥─────────╥────────┬──────────╥───────╥────────┬──────────┐
+│ дужина ║ компресија ║ id ║ тип 1 │ објект 1 ║ ... ║ тип N │ објект N │
+└────────╨─────────────╨─────────╨────────┴──────────╨───────╨────────┴──────────┘
+ └──────┘ └───────────┘ └───────┘ └──────┘ └────────┘ └──────┘ └────────┘
+ 4 1 4 + str 3 ?? 3 ??
+ └────────────────────┘ └───────────────────────────────────────────────────────┘
+ заглавље (5) компесовани подаци (??)
+ └──────────────────────────────────────────────────────────────────────────────┘
+ 'length' bytes
+....
+
+* _дужина_ (неозначени цео број, 4 бајта): број бајтова у целој поруци (заједно са овим пољем)
+* _компресија_ (бајт): заставица:
+** _0x00_: подаци који следе нису компресовани
+** _0x01_: подаци који следе су компресовани са _zlib_
+* _id_ (стринг, 4 бајта + садржај): идентификатор који послао клијент (пре имена команде); може бити и празан (стринг дужине нула и без садржаја) ако у команди није био наведен идентификатор
+* _тип_ (3 карактера): тип: 3 слова (погледајте табелу испод)
+* _објект_: објекат (погледајте табелу испод)
+
+[[message_compression]]
+=== Компресија
+
+Ако је вредност заставице _компресија_ 0x01, онда су *сви* подаци компресовани _zlib_ алгоритмом, тако да пре обраде морају да се декомпресују.
+
+[[message_identifier]]
+=== Идентификатор
+
+Постоје два типа идентификатора (_id_):
+
+* _id_ који је послао _клијент_: _релеј_ ће у свој одговор поставити овај исти _id_
+* _id_ догађаја: приликом неких догађаја, _релеј_ ће _клијенту_ послати поруку користећи одређени _id_ који почиње са доњом цртом (погледајте табелу испод)
+
+WeeChat резервисани идентификатори:
+
+[width="100%", cols="5m,5,3,4,7", options="header"]
+|===
+| Идентификатор | Примљен са _sync_ | Послати подаци |
+ Опис | Препоручена акција у клијенту
+
+| _buffer_opened | buffers / buffer | hdata: buffer |
+ Бафер је отворен. | Отварање бафера.
+
+| _buffer_type_changed | buffers / buffer | hdata: buffer |
+ Промењен је тип бафера. | Измена типа бафера.
+
+| _buffer_moved | buffers / buffer | hdata: buffer |
+ Buffer је премештен. | Премештање бафера.
+
+| _buffer_merged | buffers / buffer | hdata: buffer |
+ Buffer је спојен. | Спајање бафера.
+
+| _buffer_unmerged | buffers / buffer | hdata: buffer |
+ Бафер је раздвојен. | Раздвајање бафера.
+
+| _buffer_hidden | buffers / buffer | hdata: buffer |
+ Бафер је сакривен. | Скривање бафера.
+
+| _buffer_unhidden | buffers / buffer | hdata: buffer |
+ Бафер је откривен. | Откривање бафера.
+
+| _buffer_renamed | buffers / buffer | hdata: buffer |
+ Баферу је промењено име. | Промена имена бафера.
+
+| _buffer_title_changed | buffers / buffer | hdata: buffer |
+ Промењен је наслов бафера. | Промена наслова бафера.
+
+| _buffer_localvar_added | buffers / buffer | hdata: buffer |
+ Додата је локална променљива. | Додавање локалне променљиве.
+
+| _buffer_localvar_changed | buffers / buffer | hdata: buffer |
+ Локална променљива је измењена. | Измена локалне променљиве у баферу.
+
+| _buffer_localvar_removed | buffers / buffer | hdata: buffer |
+ Уклоњена је локална променљива. | Уклањање локалне променљиве из бафера.
+
+| _buffer_closing | buffers / buffer | hdata: buffer |
+ Бафер је затворен. | Затварање бафера.
+
+| _buffer_cleared | buffer | hdata: buffer |
+ Бафер је очишћен. | Чишћење бафера.
+
+| _buffer_line_added | buffer | hdata: line |
+ У бафер је додата линија. | Приказ линије у баферу.
+
+| _nicklist | nicklist | hdata: nicklist_item |
+ Листа надимака за бафер. | Замена листе надимака.
+
+| _nicklist_diff | nicklist | hdata: nicklist_item |
+ Разлике листе надимака за бафер. | Ажурирање листе надимака.
+
+| _pong | (always) | стринг: ping аргументи |
+ Одговор на „ping”. | Мерење времена одговора.
+
+| _upgrade | upgrade | (празно) |
+ Програм WeeChat се ажурира. | Десинхронизација са програмом WeeChat (или прекид везе).
+
+| _upgrade_ended | upgrade | (празно) |
+ Завршено је ажурирање програма WeeChat. | Синхро/ресинхро са програмом WeeChat.
+|===
+
+[[message_buffer_opened]]
+==== _buffer_opened
+
+Ова порука се шаље клијенту када програм WeeChat пошаље сигнал „buffer_opened”.
+
+Подаци се шаљу као hdata:
+
+[width="100%", cols="3m,2,10", options="header"]
+|===
+| Име | Тип | Опис
+| number | целобројни | Број бафера (≥ 1).
+| full_name | стринг | Пуно име (пример: _irc.libera.#weechat_).
+| short_name | стринг | Кратко име (пример: _#weechat_).
+| nicklist | целобројни | 1 ако бафер има листу надимака, у супротном 0.
+| title | стринг | Наслов бафера.
+| local_variables | хештабела | Локалне променљиве.
+| prev_buffer | показивач | Показивач на претходни бафер.
+| next_buffer | показивач | Показивач на наредни бафер.
+|===
+
+Пример: приступљено каналу _#weechat_ на libera, нови бафер _irc.libera.#weechat_:
+
+[source, python]
+----
+id: '_buffer_opened'
+hda:
+ keys: {
+ 'number': 'int',
+ 'full_name': 'str',
+ 'short_name': 'str',
+ 'nicklist': 'int',
+ 'title': 'str',
+ 'local_variables': 'htb',
+ 'prev_buffer': 'ptr',
+ 'next_buffer': 'ptr',
+ }
+ path: ['buffer']
+ item 1:
+ __path: ['0x35a8a60']
+ number: 3
+ full_name: 'irc.libera.#weechat'
+ short_name: None
+ nicklist: 0
+ title: None
+ local_variables: {
+ 'plugin': 'irc',
+ 'name': 'libera.#weechat',
+ }
+ prev_buffer: '0x34e7400'
+ next_buffer: '0x0'
+----
+
+[[message_buffer_moved]]
+==== _buffer_moved
+
+Ова порука се шаље клијенту када програм WeeChat пошаље сигнал „buffer_moved”.
+
+Подаци се шаљу као hdata:
+
+[width="100%", cols="3m,2,10", options="header"]
+|===
+| Име | Тип | Опис
+| number | целобројни | Број бафера (≥ 1).
+| full_name | стринг | Пуно име (пример: _irc.libera.#weechat_).
+| prev_buffer | показивач | Показивач на претходни бафер.
+| next_buffer | показивач | Показивач на наредни бафер.
+|===
+
+Пример: бафер _irc.libera.#weechat_ је померен на број 2:
+
+[source, python]
+----
+id: '_buffer_moved'
+hda:
+ keys: {
+ 'number': 'int',
+ 'full_name': 'str',
+ 'prev_buffer': 'ptr',
+ 'next_buffer': 'ptr',
+ }
+ path: ['buffer']
+ item 1:
+ __path: ['0x34588c0']
+ number: 2
+ full_name: 'irc.libera.#weechat'
+ prev_buffer: '0x347b9f0'
+ next_buffer: '0x3471bc0'
+----
+
+[[message_buffer_merged]]
+==== _buffer_merged
+
+Ова порука се шаље клијенту када програм WeeChat пошаље сигнал „buffer_merged”.
+
+Подаци се шаљу као hdata:
+
+[width="100%", cols="3m,2,10", options="header"]
+|===
+| Име | Тип | Опис
+| number | целобројни | Број бафера (≥ 1).
+| full_name | стринг | Пуно име (пример: _irc.libera.#weechat_).
+| prev_buffer | показивач | Показивач на претходни бафер.
+| next_buffer | показивач | Показивач на наредни бафер.
+|===
+
+Пример: бафер _irc.libera.#weechat_ је спојен са бафером #2:
+
+[source, python]
+----
+id: '_buffer_merged'
+hda:
+ keys: {
+ 'number': 'int',
+ 'full_name': 'str',
+ 'prev_buffer': 'ptr',
+ 'next_buffer': 'ptr',
+ }
+ path: ['buffer']
+ item 1:
+ __path: ['0x4db4c00']
+ number: 2
+ full_name: 'irc.libera.#weechat'
+ prev_buffer: '0x4cef9b0'
+ next_buffer: '0x0'
+----
+
+[[message_buffer_unmerged]]
+==== _buffer_unmerged
+
+Ова порука се шаље клијенту када програм WeeChat пошаље сигнал „buffer_unmerged”.
+
+Подаци се шаљу као hdata:
+
+[width="100%", cols="3m,2,10", options="header"]
+|===
+| Име | Тип | Опис
+| number | целобројни | Број бафера (≥ 1).
+| full_name | стринг | Пуно име (пример: _irc.libera.#weechat_).
+| prev_buffer | показивач | Показивач на претходни бафер.
+| next_buffer | показивач | Показивач на наредни бафер.
+|===
+
+Пример: бафер _irc.libera.#weechat_ је раздвојен:
+
+[source, python]
+----
+id: '_buffer_unmerged'
+hda:
+ keys: {
+ 'number': 'int',
+ 'full_name': 'str',
+ 'prev_buffer': 'ptr',
+ 'next_buffer': 'ptr',
+ }
+ path: ['buffer']
+ item 1:
+ __path: ['0x4db4c00']
+ number: 3
+ full_name: 'irc.libera.#weechat'
+ prev_buffer: '0x4cef9b0'
+ next_buffer: '0x0'
+----
+
+[[message_buffer_hidden]]
+==== _buffer_hidden
+
+_WeeChat ≥ 1.0._
+
+Ова порука се шаље клијенту када програм WeeChat пошаље сигнал „buffer_hidden”.
+
+Подаци се шаљу као hdata:
+
+[width="100%", cols="3m,2,10", options="header"]
+|===
+| Име | Тип | Опис
+| number | целобројни | Број бафера (≥ 1).
+| full_name | стринг | Пуно име (пример: _irc.libera.#weechat_).
+| prev_buffer | показивач | Показивач на претходни бафер.
+| next_buffer | показивач | Показивач на наредни бафер.
+|===
+
+Пример: бафер _irc.libera.#weechat_ је скривен:
+
+[source, python]
+----
+id: '_buffer_hidden'
+hda:
+ keys: {
+ 'number': 'int',
+ 'full_name': 'str',
+ 'prev_buffer': 'ptr',
+ 'next_buffer': 'ptr',
+ }
+ path: ['buffer']
+ item 1:
+ __path: ['0x4db4c00']
+ number: 2
+ full_name: 'irc.libera.#weechat'
+ prev_buffer: '0x4cef9b0'
+ next_buffer: '0x0'
+----
+
+[[message_buffer_unhidden]]
+==== _buffer_unhidden
+
+_WeeChat ≥ 1.0._
+
+Ова порука се шаље клијенту када програм WeeChat пошаље сигнал „buffer_unhidden”.
+
+Подаци се шаљу као hdata:
+
+[width="100%", cols="3m,2,10", options="header"]
+|===
+| Име | Тип | Опис
+| number | целобројни | Број бафера (≥ 1).
+| full_name | стринг | Пуно име (пример: _irc.libera.#weechat_).
+| prev_buffer | показивач | Показивач на претходни бафер.
+| next_buffer | показивач | Показивач на наредни бафер.
+|===
+
+Пример: бафер _irc.libera.#weechat_ је откривен:
+
+[source, python]
+----
+id: '_buffer_unhidden'
+hda:
+ keys: {
+ 'number': 'int',
+ 'full_name': 'str',
+ 'prev_buffer': 'ptr',
+ 'next_buffer': 'ptr',
+ }
+ path: ['buffer']
+ item 1:
+ __path: ['0x4db4c00']
+ number: 3
+ full_name: 'irc.libera.#weechat'
+ prev_buffer: '0x4cef9b0'
+ next_buffer: '0x0'
+----
+
+[[message_buffer_renamed]]
+==== _buffer_renamed
+
+Ова порука се шаље клијенту када програм WeeChat пошаље сигнал „buffer_renamed”.
+
+Подаци се шаљу као hdata:
+
+[width="100%", cols="3m,2,10", options="header"]
+|===
+| Име | Тип | Опис
+| number | целобројни | Број бафера(≥ 1).
+| full_name | стринг | Пуно име (пример: _irc.libera.#weechat_).
+| short_name | стринг | Кратко име (пример: _#weechat_).
+| local_variables | хештабела | Локалне променљиве.
+|===
+
+Пример: име приватног бафера је промењено са _FlashCode_ у _Flash2_:
+
+[source, python]
+----
+id: '_buffer_renamed'
+hda:
+ keys: {
+ 'number': 'int',
+ 'full_name': 'str',
+ 'short_name': 'str',
+ 'local_variables': 'htb',
+ }
+ path: ['buffer']
+ item 1:
+ __path: ['0x4df7b80']
+ number: 5
+ full_name: 'irc.libera.Flash2'
+ short_name: 'Flash2'
+ local_variables: {
+ 'server': 'libera',
+ 'plugin': 'irc',
+ 'type': 'private',
+ 'channel': 'FlashCode',
+ 'nick': 'test',
+ 'name': 'libera.Flash2',
+ }
+----
+
+[[message_buffer_title_changed]]
+==== _buffer_title_changed
+
+Ова порука се шаље клијенту када програм WeeChat пошаље сигнал „buffer_title_changed”.
+
+Подаци се шаљу као hdata:
+
+[width="100%", cols="3m,2,10", options="header"]
+|===
+| Име | Тип | Опис
+| number | целобројни | Број бафера (≥ 1).
+| full_name | стринг | Пуно име (пример: _irc.libera.#weechat_).
+| title | стринг | Наслов бафера.
+|===
+
+Пример: измењена је тема на каналу _#weechat_:
+
+[source, python]
+----
+id: '_buffer_title_changed'
+hda:
+ keys: {
+ 'number': 'int',
+ 'full_name': 'str',
+ 'title': 'str',
+ }
+ path: ['buffer']
+ item 1:
+ __path: ['0x4a715d0']
+ number: 3
+ full_name: 'irc.libera.#weechat'
+ title: 'Welcome on #weechat! https://weechat.org/'
+----
+
+[[message_buffer_cleared]]
+==== _buffer_cleared
+
+_WeeChat ≥ 1.0._
+
+Ова порука се шаље клијенту када програм WeeChat пошаље сигнал „buffer_cleared”.
+
+Подаци се шаљу као hdata:
+
+[width="100%", cols="3m,2,10", options="header"]
+|===
+| Име | Тип | Опис
+| number | целобројни | Број бафера (≥ 1).
+| full_name | стринг | Пуно име (пример: _irc.libera.#weechat_).
+|===
+
+Пример: очишћен је бафер _irc.libera.#weechat_:
+
+[source, python]
+----
+id: '_buffer_cleared'
+hda:
+ keys: {
+ 'number': 'int',
+ 'full_name': 'str',
+ }
+ path: ['buffer']
+ item 1:
+ __path: ['0x4a715d0']
+ number: 3
+ full_name: 'irc.libera.#weechat'
+----
+
+[[message_buffer_type_changed]]
+==== _buffer_type_changed
+
+Ова порука се шаље клијенту када програм WeeChat пошаље сигнал „buffer_type_changed”.
+
+Подаци се шаљу као hdata:
+
+[width="100%", cols="3m,2,10", options="header"]
+|===
+| Име | Тип | Опис
+| number | целобројни | Број бафера (≥ 1).
+| full_name | стринг | Пуно име (пример: _irc.libera.#weechat_).
+| type | целобројни | Тип бафера: 0 = форматирани (подраз.), 1 = слободни садржај.
+|===
+
+Пример: промењен је тип бафера _script.scripts_ са форматирани (0) на слободни садржај (1):
+
+[source, python]
+----
+id: '_buffer_type_changed'
+hda:
+ keys: {
+ 'number': 'int',
+ 'full_name': 'str',
+ 'type': 'int',
+ }
+ path: ['buffer']
+ item 1:
+ __path: ['0x27c9a70']
+ number: 4
+ full_name: 'script.scripts'
+ type: 1
+----
+
+[[message_buffer_localvar_added]]
+==== _buffer_localvar_added
+
+Ова порука се шаље клијенту када програм WeeChat пошаље сигнал „buffer_localvar_added”.
+
+Подаци се шаљу као hdata:
+
+[width="100%", cols="3m,2,10", options="header"]
+|===
+| Име | Тип | Опис
+| number | целобројни | Број бафера (≥ 1).
+| full_name | стринг | Пуно име (пример: _irc.libera.#weechat_).
+| local_variables | хештабела | Локалне променљиве.
+|===
+
+Пример: локална променљива _test_ је додата у бафер _irc.libera.#weechat_:
+
+[source, python]
+----
+id='_buffer_localvar_added', objects:
+hda:
+ keys: {
+ 'number': 'int',
+ 'full_name': 'str',
+ 'local_variables': 'htb',
+ }
+ path: ['buffer']
+ item 1:
+ __path: ['0x4a73de0']
+ number: 3
+ full_name: 'irc.libera.#weechat'
+ local_variables: {
+ 'server': 'libera',
+ 'test': 'value',
+ 'plugin': 'irc',
+ 'type': 'channel',
+ 'channel': '#weechat',
+ 'nick': 'test',
+ 'name': 'libera.#weechat',
+ }
+----
+
+[[message_buffer_localvar_changed]]
+==== _buffer_localvar_changed
+
+Ова порука се шаље клијенту када програм WeeChat пошаље сигнал „buffer_localvar_changed”.
+
+Подаци се шаљу као hdata:
+
+[width="100%", cols="3m,2,10", options="header"]
+|===
+| Име | Тип | Опис
+| number | целобројни | Број бафера (≥ 1).
+| full_name | стринг | Пуно име (пример: _irc.libera.#weechat_).
+| local_variables | хештабела | Локалне променљиве.
+|===
+
+Пример: ажурирана је локална променљива _test_ у баферу _irc.libera.#weechat_:
+
+[source, python]
+----
+id='_buffer_localvar_changed', objects:
+hda:
+ keys: {
+ 'number': 'int',
+ 'full_name': 'str',
+ 'local_variables': 'htb',
+ }
+ path: ['buffer']
+ item 1:
+ __path: ['0x4a73de0']
+ number: 3
+ full_name: 'irc.libera.#weechat'
+ local_variables: {
+ 'server': 'local',
+ 'test': 'value2',
+ 'plugin': 'irc',
+ 'type': 'channel',
+ 'channel': '#weechat',
+ 'nick': 'test',
+ 'name': 'libera.#weechat',
+ }
+----
+
+[[message_buffer_localvar_removed]]
+==== _buffer_localvar_removed
+
+Ова порука се шаље клијенту када програм WeeChat пошаље сигнал „buffer_localvar_removed”.
+
+Подаци се шаљу као hdata:
+
+[width="100%", cols="3m,2,10", options="header"]
+|===
+| Име | Тип | Опис
+| number | целобројни | Број бафера (≥ 1).
+| full_name | стринг | Пуно име (пример: _irc.libera.#weechat_).
+| local_variables | хештабела | Локалне променљиве.
+|===
+
+Пример: локална променљива _test_ је уклоњена из бафера _irc.libera.#weechat_:
+
+[source, python]
+----
+id: '_buffer_localvar_removed'
+hda:
+ keys: {
+ 'number': 'int',
+ 'full_name': 'str',
+ 'local_variables': 'htb',
+ }
+ path: ['buffer']
+ item 1:
+ __path: ['0x4a73de0']
+ number: 3
+ full_name: 'irc.libera.#prout'
+ local_variables: {
+ 'server': 'local',
+ 'plugin': 'irc',
+ 'type': 'channel',
+ 'channel': '#weechat',
+ 'nick': 'test',
+ 'name': 'libera.#weechat',
+ }
+----
+
+[[message_buffer_line_added]]
+==== _buffer_line_added
+
+Ова порука се шаље клијенту када програм WeeChat пошаље сигнал „buffer_line_added”.
+
+Подаци се шаљу као hdata:
+
+[width="100%", cols="3m,2,10", options="header"]
+|===
+| Име | Тип | Опис
+| buffer | показивач | Показивач на бафер.
+| date | време | Датум поруке.
+| date_printed | време | Датум када је програм WeeChat приказао поруку.
+| displayed | карактер | 1 ако је порука приказана, 0 ако је порука филтрирана (скривена).
+| notify_level | карактер | Ниво обавештења: -1 = обавештење искључено, 0 = ниски, 1 = порука, 2 = приватно, 3 = истицање.
+| highlight | карактер | 1 ако се у линији налази истицање, у супротном 0.
+| tags_array | низ стрингова | Листа ознака за линију.
+| prefix | стринг | Префикс.
+| message | стринг | Порука.
+|===
+
+Пример: нова порука _здраво!_ од надимка _FlashCode_ у баферу _irc.libera.#weechat_:
+
+[source, python]
+----
+id: '_buffer_line_added'
+hda:
+ keys: {
+ 'buffer': 'ptr',
+ 'date': 'tim',
+ 'date_printed': 'tim',
+ 'displayed': 'chr',
+ 'notify_level': 'chr',
+ 'highlight': 'chr',
+ 'tags_array': 'arr',
+ 'prefix': 'str',
+ 'message': 'str',
+ }
+ path: ['line_data']
+ item 1:
+ __path: ['0x4a49600']
+ buffer: '0x4a715d0'
+ date: 1362728993
+ date_printed: 1362728993
+ displayed: 1
+ notify_level: 1
+ highlight: 0
+ tags_array: [
+ 'irc_privmsg',
+ 'notify_message',
+ 'prefix_nick_142',
+ 'nick_FlashCode',
+ 'log1',
+ ]
+ prefix: 'F06@F@00142FlashCode'
+ message: 'здраво!'
+----
+
+[[message_buffer_closing]]
+==== _buffer_closing
+
+Ова порука се шаље клијенту када програм WeeChat пошаље сигнал „buffer_closing”.
+
+Подаци се шаљу као hdata:
+
+[width="100%", cols="3m,2,10", options="header"]
+|===
+| Име | Тип | Опис
+| number | целобројни | Број бафера (≥ 1).
+| full_name | стринг | Пуно име (пример: _irc.libera.#weechat_).
+|===
+
+Пример: програм WeeChat затвара бафер _irc.libera.#weechat_:
+
+[source, python]
+----
+id: '_buffer_closing'
+hda:
+ keys: {
+ 'number': 'int',
+ 'full_name': 'str',
+ }
+ path: ['buffer']
+ item 1:
+ __path: ['0x4a715d0']
+ number: 3
+ full_name: 'irc.libera.#weechat'
+----
+
+[[message_nicklist]]
+==== _nicklist
+
+Ова порука се шаље клијенту када се над листом надимака догађају велика ажурирања (групе/надимци се додају/уклањају/мењају). Порука садржи комплетну листу надимака.
+
+Када се над листом надимака обављају мала ажурирања (додаје се, на пример, само један нови надимак), шаље се још једна порука са идентификатором __nicklist_diff_ (погледајте испод).
+
+Подаци се шаљу као hdata:
+
+[width="100%", cols="3m,2,10", options="header"]
+|===
+| Име | Тип | Опис
+| group | карактер | 1 за групу, 0 за надимак.
+| visible | карактер | 1 ако се група/надимак приказује, у супротном 0.
+| level | целобројни | Ниво групе (0 за надимак).
+| name | стринг | Име групе/надимка.
+| color | стринг | Боја имена.
+| prefix | стринг | Префикс (само за надимак).
+| prefix_color | стринг | Боја префикса (само за надимак).
+|===
+
+Пример: листа надимака за бафер _irc.libera.#weechat_:
+
+[source, python]
+----
+id: '_nicklist'
+hda:
+ keys: {
+ 'group': 'chr',
+ 'visible': 'chr',
+ 'level': 'int',
+ 'name': 'str',
+ 'color': 'str',
+ 'prefix': 'str',
+ 'prefix_color': 'str',
+ }
+ path: ['buffer', 'nicklist_item']
+ item 1:
+ __path: ['0x4a75cd0', '0x31e95d0']
+ group: 1
+ visible: 0
+ level: 0
+ name: 'root'
+ color: None
+ prefix: None
+ prefix_color: None
+ item 2:
+ __path: ['0x4a75cd0', '0x41247b0']
+ group: 1
+ visible: 1
+ level: 1
+ name: '000|o'
+ color: 'weechat.color.nicklist_group'
+ prefix: None
+ prefix_color: None
+ item 3:
+ __path: ['0x4a75cd0', '0x4a60d20']
+ group: 0
+ visible: 1
+ level: 0
+ name: 'FlashCode'
+ color: '142'
+ prefix: '@'
+ prefix_color: 'lightgreen'
+ item 4:
+ __path: ['0x4a75cd0', '0x4aafaf0']
+ group: 1
+ visible: 1
+ level: 1
+ name: '001|v'
+ color: 'weechat.color.nicklist_group'
+ prefix: None
+ prefix_color: None
+ item 5:
+ __path: ['0x4a75cd0', '0x4a48d80']
+ group: 1
+ visible: 1
+ level: 1
+ name: '999|...'
+ color: 'weechat.color.nicklist_group'
+ prefix: None
+ prefix_color: None
+ item 6:
+ __path: ['0x4a75cd0', '0x4a5f560']
+ group: 0
+ visible: 1
+ level: 0
+ name: 'test'
+ color: 'weechat.color.chat_nick_self'
+ prefix: ' '
+ prefix_color: ''
+----
+
+[[message_nicklist_diff]]
+==== _nicklist_diff
+
+_WeeChat ≥ 0.4.1._
+
+Ова порука се шаље клијенту када се над листом надимака врши мало ажурирање (групе/надимци се додају/уклањају/мењају). Порука садржи разлику листе надимака (између старе и текуће листе надимака).
+
+Подаци се шаљу као hdata:
+
+[width="100%", cols="3m,2,10", options="header"]
+|===
+| Име | Тип | Опис
+| _diff | карактер | Тип diff-а (погледајте испод).
+| group | карактер | 1 за групу, 0 за надимак.
+| visible | карактер | 1 ако се група/надимак приказује, у супротном 0.
+| level | целобројни | Ниво групе (0 за надимак).
+| name | стринг | Име групе/надимка.
+| color | стринг | Боја имена.
+| prefix | стринг | Префикс (само за надимак).
+| prefix_color | стринг | Боја префикса (само за надимак).
+|===
+
+Вредност __diff_ може бити:
+
+* `+^+`: родитељска група: груп(а/е) или надим(ак/ци) након овог су у вези са овом групом
+* `+++`: група/надимак се додаје у родитељску групу
+* `+-+`: група/надимак се уклања из родитељске групе
+* `+*+`: група/надимак је ажуриран у родитељској групи
+
+Примр: надимак _master_ је додат у групу _000|o_ (опови неког IRC канала) надимци _nick1_ и _nick2_ су додати у групу _999|..._ (стандардни корисници IRC канала):
+
+[source, python]
+----
+id: '_nicklist_diff'
+hda:
+ keys: {
+ '_diff': 'chr',
+ 'group': 'chr',
+ 'visible': 'chr',
+ 'level': 'int',
+ 'name': 'str',
+ 'color': 'str',
+ 'prefix': 'str',
+ 'prefix_color': 'str',
+ }
+ path: ['buffer', 'nicklist_item']
+ item 1:
+ __path: ['0x46f2ee0', '0x343c9b0']
+ _diff: 94 ('^')
+ group: 1
+ visible: 1
+ level: 1
+ name: '000|o'
+ color: 'weechat.color.nicklist_group'
+ prefix: None
+ prefix_color: None
+ item 2:
+ __path: ['0x46f2ee0', '0x47e7f60']
+ _diff: 43 ('+')
+ group: 0
+ visible: 1
+ level: 0
+ name: 'master'
+ color: 'magenta'
+ prefix: '@'
+ prefix_color: 'lightgreen'
+ item 3:
+ __path: ['0x46f2ee0', '0x46b8e70']
+ _diff: 94 ('^')
+ group: 1
+ visible: 1
+ level: 1
+ name: '999|...'
+ color: 'weechat.color.nicklist_group'
+ prefix: None
+ prefix_color: None
+ item 4:
+ __path: ['0x46f2ee0', '0x3dba240']
+ _diff: 43 ('+')
+ group: 0
+ visible: 1
+ level: 0
+ name: 'nick1'
+ color: 'green'
+ prefix: ' '
+ prefix_color: ''
+ item 5:
+ __path: ['0x46f2ee0', '0x3c379d0']
+ _diff: 43 ('+')
+ group: 0
+ visible: 1
+ level: 0
+ name: 'nick2'
+ color: 'lightblue'
+ prefix: ' '
+ prefix_color: ''
+----
+
+[[message_pong]]
+==== _pong
+
+_WeeChat ≥ 0.4.2._
+
+Ова порука се шаље клијенту када _релеј_ прими „ping” поруку.
+
+Подаци који се шаљу као стринг: аргументи примљени у „ping” поруци.
+
+Препоручена акција у клијенту је да измери време одговора и да прекине везу ако је оно сувише велико.
+
+[[message_upgrade]]
+==== _upgrade
+
+_WeeChat ≥ 0.3.8._
+
+Ова порука се шаље клијенту када програм WeeChat покрене процес ажурирања.
+
+У овој поруци нема података.
+
+Препоручена акција у клијенту је да се десинхронизује са програмом WeeChat (да пошаље команду _desync_), или да прекине везу са програмом WeeChat (јер ће се након ажурирања променити вредности свих показивача).
+
+[NOTE]
+Током ажурирања програма WeeChat, сокет остаје отворен (осим у случају када веза користи SSL).
+
+[[message_upgrade_ended]]
+==== _upgrade_ended
+
+_WeeChat ≥ 0.3.8._
+
+Ова порука се шаље клијенту када програм WeeChat заврши процес ажурирања.
+
+У овој поруци нема података.
+
+Препоручена акција у клијенту је да се ресинхронизује са програмом WeeChat: тј. да поново пошаље све команде које шаље током покретања након _init_.
+
+[[objects]]
+=== Објекти
+
+Објекти се идентификују са 3 слова, која се зову _тип_. Користе се следећи типови:
+
+[width="100%", cols="^2m,5,10", options="header"]
+|===
+| Тип | Вредност | Дужина
+| chr | Означени карактер | 1 бајт
+| int | Означени целобројни | 4 бајта
+| lon | Означени дугачки целобројни | 1 бајт + дужина целобројног као стринг
+| str | Стринг | 4 бајта + дужина стринга (без завршног `\0`)
+| buf | Бафер бајтова | 4 бајта + дужина података
+| ptr | Показивач | 1 бајт + дужина показивача као стринг
+| tim | Време | 1 бајт + дужина времена као стринг
+| htb | Хештабела | Променљива
+| hda | Садржај Hdata | Променљива
+| inf | Инфо: име + садржај | Променљива
+| inl | Садржај Инфолисте | Променљива
+| arr | Низ објеката | 3 бајта (тип) + број објеката + подаци
+|===
+
+[[object_char]]
+==== Карактер
+
+Означени карактер се чува као 1 бајт.
+
+Пример:
+
+....
+┌────┐
+│ 41 │ ────► 65 (0x41: „A”)
+└────┘
+....
+
+[[object_integer]]
+==== Целобројни
+
+Означена целобројна вредност се чува као 4 бајта, кодираних у big-endian формату (најпре долази бајт највеће тежине).
+
+Опсег: -2147483648 до 2147483647.
+
+Примери:
+
+....
+┌────┬────┬────┬────┐
+│ 00 │ 01 │ E2 │ 40 │ ────► 123456
+└────┴────┴────┴────┘
+
+┌────┬────┬────┬────┐
+│ FF │ FE │ 1D │ C0 │ ────► -123456
+└────┴────┴────┴────┘
+....
+
+[[object_long_integer]]
+==== Дугачки целобројни
+
+Означена дугачка целобројна вредност се кодира као стринг, са дужином у једном бајту.
+
+Опсег: -9223372036854775808 до 9223372036854775807.
+
+Примери:
+
+....
+┌────╥────┬────┬────┬────┬────┬────┬────┬────┬────┬────┐
+│ 0A ║ 31 │ 32 │ 33 │ 34 │ 35 │ 36 │ 37 │ 38 │ 39 │ 30 │ ────► 1234567890
+└────╨────┴────┴────┴────┴────┴────┴────┴────┴────┴────┘
+ └──┘ └───────────────────────────────────────────────┘
+дужина '1' '2' '3' '4' '5' '6' '7' '8' '9' '0'
+
+┌────╥────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┐
+│ 0B ║ 2D │ 31 │ 32 │ 33 │ 34 │ 35 │ 36 │ 37 │ 38 │ 39 │ 30 │ ────► -1234567890
+└────╨────┴────┴────┴────┴────┴────┴────┴────┴────┴────┴────┘
+ └──┘ └────────────────────────────────────────────────────┘
+дужина '-' '1' '2' '3' '4' '5' '6' '7' '8' '9' '0'
+....
+
+[[object_string]]
+==== Стринг
+
+Стринг је дужина (цео број дужине 4 бајтова) + садржај стринга (без завршног `\0`).
+
+Пример:
+
+....
+┌────┬────┬────┬────╥────┬────┬────┬────┬────┐
+│ 00 │ 00 │ 00 │ 05 ║ 68 │ 65 │ 6C │ 6C │ 6F │ ────► "hello"
+└────┴────┴────┴────╨────┴────┴────┴────┴────┘
+ └─────────────────┘ └──────────────────────┘
+ дужина 'h' 'e' 'l' 'l' 'o'
+....
+
+Празан стринг има дужину нула:
+
+....
+┌────┬────┬────┬────┐
+│ 00 │ 00 │ 00 │ 00 │ ────► ""
+└────┴────┴────┴────┘
+ └─────────────────┘
+ дужина
+....
+
+_NULL_ стринг (NULL показивач у C) има дужину -1:
+
+....
+┌────┬────┬────┬────┐
+│ FF │ FF │ FF │ FF │ ────► NULL
+└────┴────┴────┴────┘
+ └─────────────────┘
+ дужина
+....
+
+[[object_buffer]]
+==== Бафер
+
+Исти формат као и <<object_string,стринг>>; садржај је прости низ бајтова.
+
+[[object_pointer]]
+==== Показивач
+
+Показивач је кодиран као стринг (хекс), са дужином у једном бајту.
+
+Пример:
+
+....
+┌────╥────┬────┬────┬────┬────┬────┬────┬────┬────┐
+│ 09 ║ 31 │ 61 │ 32 │ 62 │ 33 │ 63 │ 34 │ 64 │ 35 │ ────► 0x1a2b3c4d5
+└────╨────┴────┴────┴────┴────┴────┴────┴────┴────┘
+ └──┘ └──────────────────────────────────────────┘
+дужина '1' 'a' '2' 'b' '3' 'c' '4' 'd' '5'
+....
+
+_NULL_ показивач има дужину 1 и вредност 0:
+
+....
+┌────╥────┐
+│ 01 ║ 30 │ ────► NULL (0x0)
+└────╨────┘
+ └──┘ └──┘
+дужина '0'
+....
+
+[[object_time]]
+==== Време
+
+Време (број секунди) се кодира као стринг, са дужином у једном бајту.
+
+Пример:
+
+....
+┌────╥────┬────┬────┬────┬────┬────┬────┬────┬────┬────┐
+│ 0A ║ 31 │ 33 │ 32 │ 31 │ 39 │ 39 │ 33 │ 34 │ 35 │ 36 │ ────► 1321993456
+└────╨────┴────┴────┴────┴────┴────┴────┴────┴────┴────┘
+ └──┘ └───────────────────────────────────────────────┘
+дужина '1' '3' '2' '1' '9' '9' '3' '4' '5' '6'
+....
+
+[[object_hashtable]]
+==== Хештабела
+
+Хештабела садржи тип кључева, вип вредности, број ставки у хеш табели ( целобројна вредност дужине 4 бајта), па затим ставке кључева и вредности.
+
+....
+┌───────────┬───────────────┬───────╥───────┬────────╥─────╥───────┬────────┐
+│ тип_кључа │ тип_вредности │ број ║ кључ1 │ вредн1 ║ ... ║ кључN │ вреднN │
+└───────────┴───────────────┴───────╨───────┴────────╨─────╨───────┴────────┘
+....
+
+Пример:
+
+....
+┌─────┬─────┬───╥──────┬─────╥──────┬─────┐
+│ str │ str │ 2 ║ key1 │ abc ║ key2 │ def │ ────► { 'key1' => 'abc',
+└─────┴─────┴───╨──────┴─────╨──────┴─────┘ 'key2' => 'def' }
+ └───┘ └───┘ └─┘ └──────────┘ └──────────┘
+ тип тип број ставка 1 ставка 2
+кључа вредн
+....
+
+[[object_hdata]]
+==== Hdata
+
+_hdata_ садржи путању са hdata именима, листу кључева, број скупа објеката, па затим скуп објеката (путања са показивачима, затим објекти).
+
+....
+┌────────┬──────┬───────╥────────┬─────────────────────╥─────╥────────┬─────────────────────╥─────┐
+│ h-пут │ кључ │ број ║ p-пут │ вредн 1 ... вредн N ║ ... ║ p-пут │ вредн 1 ... вредн N ║ ... │
+└────────┴──────┴───────╨────────┴─────────────────────╨─────╨────────┴─────────────────────╨─────┘
+....
+
+* _h-пут_ (стринг): путања која се користи за приступ подацима (пример: _buffer/lines/line/line_data_); враћа се hdata последњег елемента у путањи
+* _кључ_ (стринг): стринг са листом _кључ:тип_ (раздвојених запетама), пример: _number:int,name:str_
+* _број_ (целобројни): број скупа објеката
+* _p-пут_: путања са показивачима на објекте (овде је број показивача број елемената у путањи)
+* _вредн_: листа вредности (број вредности је број кључева који се врати за hdata)
+
+Пример за hdata са два бафера (weechat бафер језгра и libera серверски бафер) и два кључа (_number_ и _full_name_):
+
+....
+# команда
+hdata buffer:gui_buffers(*) number,full_name
+
+# одговор
+┌────────┬──────────────────────────┬───╥─────────┬───┬──────────────╥─────────┬───┬─────────────────────┐
+│ buffer │ number:int,full_name:str │ 2 ║ 0x12345 │ 1 │ core.weechat ║ 0x6789a │ 2 │ irc.server.libera │
+└────────┴──────────────────────────┴───╨─────────┴───┴──────────────╨─────────┴───┴─────────────────────┘
+ └──────┘ └────────────────────────┘ └─┘ └──────────────────────────┘ └─────────────────────────────────┘
+ h-пут кључеви број бафер 1 бафер 2
+....
+
+Пример за hdata са линијама бафера језгра:
+
+....
+# команда
+hdata buffer:gui_buffers(*)/lines/first_line(*)/data
+
+# одговор
+┌─────────────────────────────┬─────┬────╥──
+│ buffer/lines/line/line_data │ ... │ 50 ║ ...
+└─────────────────────────────┴─────┴────╨──
+ └───────────────────────────┘ └───┘ └──┘
+ h-пут (hdata имена) кључ број
+
+ ──╥───────────┬───────────┬───────────┬───────────┬───────╥──
+ ... ║ 0x23cf970 │ 0x23cfb60 │ 0x23d5f40 │ 0x23d8a10 │ ..... ║ ...
+ ──╨───────────┴───────────┴───────────┴───────────┴───────╨──
+ └─────────────────────────────────────────────┘ └─────┘
+ p-пут (показивачи) објекти
+ └─────────────────────────────────────────────────────┘
+ линија 1
+
+ ──╥───────────┬───────────┬───────────┬───────────┬───────╥──────────────┐
+ ... ║ 0x23cf970 │ 0x23cfb60 │ 0x23d6110 │ 0x23d9420 │ ..... ║ ............ │
+ ──╨───────────┴───────────┴───────────┴───────────┴───────╨──────────────┘
+ └─────────────────────────────────────────────┘ └─────┘
+ p-пут (показивачи) објекти
+ └─────────────────────────────────────────────────────┘ └────────────┘
+ линија 2 линије 3-50
+....
+
+Пример за hdata са листом надимака:
+
+....
+# команда
+nicklist
+
+# одговор
+┌───────────────────┬──
+│ buffer/nick_group │ ...
+└───────────────────┴──
+ └─────────────────┘
+ h-пут
+
+ ──╥───────────────────────────────────────────────────────────┬────╥──
+ ... ║ group:chr,visible:chr,name:str,color:str,prefix:str,(...) │ 12 ║ ...
+ ──╨───────────────────────────────────────────────────────────┴────╨──
+ └─────────────────────────────────────────────────────────┘ └──┘
+ кључеви број
+
+ ──╥─────────┬─────────┬───┬───┬──────┬─┬─┬─┬───╥──
+ ... ║ 0x12345 │ 0x6789a │ 1 │ 0 │ root │ │ │ │ 0 ║ ...
+ ──╨─────────┴─────────┴───┴───┴──────┴─┴─┴─┴───╨──
+ └─────────────────┘ └──────────────────────┘
+ p-пут објекти
+ └──────────────────────────────────────────┘
+ група (корен листе надимака)
+
+ ──╥─────────┬─────────┬───┬───┬───────┬─┬─┬─┬───╥──
+ ... ║ 0x123cf │ 0x678d4 │ 1 │ 0 │ 000|o │ │ │ │ 1 ║ ...
+ ──╨─────────┴─────────┴───┴───┴───────┴─┴─┴─┴───╨──
+ └─────────────────┘ └───────────────────────┘
+ p-пут објекти
+ └───────────────────────────────────────────┘
+ група (опови канала)
+
+ ──╥─────────┬─────────┬───┬───┬──────────┬──────┬───┬────────────┬───╥──
+ ... ║ 0x128a7 │ 0x67ab2 │ 0 │ 1 │ ChanServ │ blue │ @ │ lightgreen │ 0 ║ ...
+ ──╨─────────┴─────────┴───┴───┴──────────┴──────┴───┴────────────┴───╨──
+ └─────────────────┘ └────────────────────────────────────────────┘
+ p-пут објекти
+ └────────────────────────────────────────────────────────────────┘
+ надимак (@ChanServ)
+....
+
+Пример за празан hdata (врућа листа у програму WeeChat је празна):
+
+....
+# команда
+hdata hotlist:gui_hotlist(*)
+
+# одговор
+┌────────┬────────┬───┐
+│ (NULL) │ (NULL) │ 0 │
+└────────┴────────┴───┘
+ └──────┘ └──────┘ └─┘
+ h-пут кључеви број
+....
+
+[[object_info]]
+==== Инфо
+
+_инфо_ садржи име и вредност (оба су стрингови).
+
+....
+┌─────┬──────────┐
+│ име │ вредност │
+└─────┴──────────┘
+....
+
+* _име_ (стринг): име инфо
+* _вредност_ (стринг): вредност
+
+Пример за _version_ инфо:
+
+....
+┌─────────┬───────────────────┐
+│ верзија │ WeeChat 0.3.7-dev │
+└─────────┴───────────────────┘
+....
+
+[[object_infolist]]
+==== Инфолиста
+
+_инфолиста_ садржи име, број ставки, па затим ставке (скуп променљивих).
+
+....
+┌─────┬──────╥──────────╥─────╥──────────┐
+│ име │ број ║ ставка 1 ║ ... ║ ставка N │
+└─────┴──────╨──────────╨─────╨──────────┘
+....
+
+Ставка је:
+
+....
+┌──────╥───────┬───────┬────────────╥─────╥───────┬───────┬────────────┐
+│ број ║ име 1 │ тип 1 │ вредност 1 ║ ... ║ име N │ тип N │ вредност N │
+└──────╨───────┴───────┴────────────╨─────╨───────┴───────┴────────────┘
+....
+
+* _име_ (стринг): име инфолисте (_buffer_, _window_, _bar_, ...)
+* _број_ (целобројни): број ставки
+* _ставка_:
+** _број_: број променљивих у ставки
+** _име_: име променљиве
+** _тип_: тип променљиве (_int_, _str_, ...)
+** _вредност_: вредност променљиве
+
+Пример инфолисте са два бафера (weechat бафер језгра и libera серверски бафер):
+
+....
+# команда
+infolist buffer
+
+# одговор
+┌────────┬───╥────┬─────────┬─────┬─────────┬─────╥────┬─────────┬─────┬─────────┬─────┐
+│ buffer │ 2 ║ 42 │ pointer │ ptr │ 0x12345 │ ... ║ 42 │ pointer │ ptr │ 0x6789a │ ... │
+└────────┴───╨────┴─────────┴─────┴─────────┴─────╨────┴─────────┴─────┴─────────┴─────┘
+ └──────┘ └─┘ └──────────────────────────────────┘ └──────────────────────────────────┘
+ име број ставка 1 ставка 2
+....
+
+[[object_array]]
+==== Низ
+
+Низ је тип (3 бајта) + број објеката (целобројна вредност дужине 4 бајта) + подаци.
+
+Пример низа са сва стринга:
+
+....
+┌─────╥────┬────┬────┬────╥────┬────┬────┬────╥────┬────┬────╥────┬────┬────┬────╥────┬────┐
+│ str ║ 00 │ 00 │ 00 │ 02 ║ 00 │ 00 │ 00 │ 03 ║ 61 │ 62 │ 63 ║ 00 │ 00 │ 00 │ 02 ║ 64 │ 65 │ ────► [ "abc", "de" ]
+└─────╨────┴────┴────┴────╨────┴────┴────┴────╨────┴────┴────╨────┴────┴────┴────╨────┴────┘
+ └───┘ └─────────────────┘ └─────────────────┘ └────────────┘ └─────────────────┘ └───────┘
+ тип број стрингова дужина 'a' 'b' 'c' дужина 'd' 'e'
+....
+
+Пример низа са три целобројне вредности:
+
+....
+┌─────╥────┬────┬────┬────╥────┬────┬────┬────╥────┬────┬────┬────╥────┬────┬────┬────┐
+│ int ║ 00 │ 00 │ 00 │ 03 ║ 00 │ 00 │ 00 │ 7B ║ 00 │ 00 │ 01 │ C8 ║ 00 │ 00 │ 03 │ 15 │ ────► [ 123, 456, 789 ]
+└─────╨────┴────┴────┴────╨────┴────┴────┴────╨────┴────┴────┴────╨────┴────┴────┴────┘
+ └───┘ └─────────────────┘ └─────────────────┘ └─────────────────┘ └─────────────────┘
+ тип број целобројних 123 (0x7B) 456 (0x1C8) 789 (0x315)
+....
+
+_NULL_ низ:
+
+....
+┌─────╥────┬────┬────┬────┐
+│ str ║ 00 │ 00 │ 00 │ 00 │ ────► NULL
+└─────╨────┴────┴────┴────┘
+ └───┘ └─────────────────┘
+ тип број стрингова
+....
+
+[[typical_session]]
+== Типична сесија
+
+....
+ ┌─────────┐ ┌───────┐ ┌─────────┐
+ │ Клијент ├ ─ ─ ─ ─ (мрежа) ─ ─ ─ ─┤ Релеј ├────────────────┤ WeeChat │
+ └─────────┘ └───────┘ └─────────┘
+ ║ ║ ║
+ ╟───────────────────────────────► ║ ║
+ ║ отварање сокета ║ додавање клијента ║
+ ║ ║ ║
+ ╟───────────────────────────────► ║ ║
+ ║ ком: handshake ... ║ договор алгоритама ║
+ ║ ║ и опција ║
+ ║ ◄───────────────────────────────╢ ║
+ ║ пор: id: "handshake" ... ║ ║
+ ║ ║ ║
+ ╟───────────────────────────────► ║ ║
+ ║ ком: init password=xxx,... ║ аутентификација клијента║
+ ║ ║ ║
+ ╟───────────────────────────────► ║ ║
+ ║ ком: hdata buffer ... ╟───────────────────────► ║
+ ║ sync ... ║ захтев за hdata ║ читање hdata
+ ║ ║ ║ вредности
+ ║ ║ ◄───────────────────────╢
+ ║ ◄───────────────────────────────╢ hdata ║
+креирање ║ пор: hda buffer ║ ║
+ бафера ║ ║ ║
+ ║ ........ ║ ........ ║
+ ║ ║ ║
+ ╟───────────────────────────────► ║ ║
+ ║ ком: input ... ╟───────────────────────► ║
+ ║ ║ слање података у бафер ║ слање података
+ ║ ║ ║ у бафер
+ ║ ........ ║ ........ ║
+ ║ ║ ║ примљен је
+ ║ ║ ◄───────────────────────╢ сигнал
+ ║ ◄───────────────────────────────╢ signal XXX ║ (закачио
+ ажурир. ║ пор: id: "_buffer_..." ║ ║ релеј)
+ бафера ║ ║ ║
+ ║ ........ ║ ........ ║
+ ║ ║ ║
+ ╟───────────────────────────────► ║ ║
+ ║ ком: ping ... ║ ║
+ ║ ║ ║
+ ║ ◄───────────────────────────────╢ ║
+ мерење ║ пор: id: "_pong" ... ║ ║
+ времена ║ ║ ║
+одговора ║ ........ ║ ........ ║
+ ║ ║ ║
+ ╟───────────────────────────────► ║ ║
+ ║ ком: quit ║ прекид везе са клијентом║
+ ║ ║ ║
+....
diff --git a/doc/sr/weechat_scripting.sr.adoc b/doc/sr/weechat_scripting.sr.adoc
new file mode 100644
index 000000000..6dd4626a0
--- /dev/null
+++ b/doc/sr/weechat_scripting.sr.adoc
@@ -0,0 +1,1348 @@
+= WeeChat водич за скриптовање
+:author: Sébastien Helleu
+:email: flashcode@flashtux.org
+:lang: sr
+:toc: left
+:toclevels: 4
+:toc-title: Садржај
+:sectnums:
+:sectnumlevels: 3
+:docinfo1:
+
+
+Ово упутство описује WeeChat чет клијент и део је програма WeeChat.
+
+Последња верзија овог документа може да се нађе на следећој страници: https://weechat.org/doc
+
+
+[[introduction]]
+== Увод
+
+WeeChat (Wee Enhanced Environment for Chat) је бесплатни чет клијент, једноставан и брз, дизајниран за многе оперативне системе.
+
+Ово упутство документује начин писања скрипти за програм WeeChat употребом једног од подржаних скрипт језика:
+
+* Python
+* Perl
+* Ruby
+* Lua
+* Tcl
+* Guile (Scheme)
+* JavaScript
+* PHP
+
+[NOTE]
+Almost all examples in this doc are written in Python, but API is the same for other languages.
+
+[[scripts_in_weechat]]
+== Скрипте у програму WeeChat
+
+[[weechat_architecture]]
+=== Архитектура програма WeeChat
+
+Програм WeeChat се извршава у једној нити, па се то применњује и на скрипте.
+
+Кôд скрипте се извршава:
+
+* када се скрипта учита: типично позивом <<register_function,функција за регистрацију>>
+* када програм WeeChat позове функцију повратног позива куке (погледајте поглавље <<hooks,Куке>>).
+
+Док се кôд скрипте извршава, програм WeeChat чека на крај извршавања пре него што настави. Тако да скрипте *НЕ СМЕЈУ* да извршавају блокирајуће операције као што су мрежни позиви без употребе одређених API функција као што је `+hook_process+`.
+
+[IMPORTANT]
+Скрипта *НИКАДА* не сме да се рачва или да креира нити без употребе одговарајуће API функције, то може да сруши програм WeeChat. + Ако нешто мора да се извршава у позадини, употребите функцију `+hook_process+`. Погледајте пример у поглављу <<hook_process,Покретање процеса у позадини>> као и документацију функције `+hook_process+` у link:weechat_plugin_api.sr.html#_hook_process[WeeChat референтном приручнику API додатака].
+
+[[languages_specificities]]
+=== Језичке специфичности
+
+[[language_python]]
+==== Python
+
+[[python_module]]
+===== Модул
+
+Програм WeeChat дефинише `weechat` модул који мора да се увезе командом `import weechat`. + Python стаб за WeeChat API је соступан у репозиторијуму: https://raw.githubusercontent.com/weechat/weechat/master/src/plugins/python/weechat.pyi[weechat.pyi].
+
+[[python_functions]]
+===== Функције
+
+Функције се позивају са `+weechat.xxx(арг1, арг2, ...)+`.
+
+Функције `+print*+` се у језику python зову `+prnt*+` (јер је `print` била резервисана реч у Python 2).
+
+[[python_strings]]
+===== Стрингови који се примају у функцијама повратног позива
+
+У Python 3 и у програму WeeChat верзије ≥ 2.7, стрингови који се примају у функцијама повратног позива имају тип `str` ако стринг садржи важеће UTF-8 податке (што је најчешћи случај), или `bytes` ако стринг није важећи UTF-8. Тако да би функција повратног позива морала да води рачуна о овом типу у случају да је могућ пријем неважећег UTF-8 садржаја.
+
+Неважећи UTF-8 подаци могу да се приме у следећим случајевима, тако да функције повратног позива могу да приме стринг типа `str` или `bytes` (ова листа није потпуна):
+
+[width="100%", cols="3m,3m,3m,8", options="header"]
+|===
+| API фунцкија | Аргументи | Примери | Опис
+
+| hook_modifier |
+ irc_in_yyy |
+ pass:[irc_in_privmsg] +
+ pass:[irc_in_notice] |
+ Порука која се прими у IRC додатку, пре него што се декодира у UTF-8 (користи
+ се интерно). +
+ +
+ Препоручује се да се уместо ње користи модификатор `+irc_in2_yyy+`, примљени
+ стринг је увек валидан UTF-8. +
+ Погледајте функцију `+hook_modifier+` у
+ link:weechat_plugin_api.sr.html#_hook_modifier[WeeChat референтном приручнику API додатака].
+
+| hook_signal |
+ xxx,irc_out_yyy +
+ xxx,irc_outtags_yyy |
+ pass:[*,irc_out_privmsg] +
+ pass:[*,irc_out_notice] +
+ pass:[*,irc_outtags_privmsg] +
+ pass:[*,irc_outtags_notice] |
+ Порука коју шаље IRC додатак, након што се кодира у `encode` скуп карактера
+ који је дефинисао корисник (у случају да се разликује од подразумеваног `UTF-8`). +
+ +
+ Препоручује се да се уместо њега користи сигнал `+xxx,irc_out1_yyy+`, стринг који
+ се прима је увек валидан UTF-8. +
+ Погледајте функцију `+hook_signal+` у
+ link:weechat_plugin_api.sr.html#_hook_signal[WeeChat референтном приручнику API додатака].
+
+| hook_process +
+ hook_process_hashtable |
+ - |
+ - |
+ Излаз команде који се шаље функцији повратног позива може да садржи неважеће UTF-8 податке.
+
+|===
+
+У Python 2, који је сад превазиђен и више не би требало да се употребљава, стрингови који се шаљу функцијама повратног позива су увек били типа `str`, и у случајевима који су поменути изнад, могли су да садрже неважеће UTF-8 податке.
+
+[[language_perl]]
+==== Perl
+
+[[perl_functions]]
+===== Функције
+
+Функције се позивају са `+weechat::xxx(арг1, арг2, ...);+`.
+
+[[language_ruby]]
+==== Ruby
+
+[[ruby_init]]
+===== Иницијализација
+
+Морате да дефинишете _weechat_init_ и да у њој позовете _register_.
+
+[[ruby_functions]]
+===== Функције
+
+Функције се позивају са `+Weechat.xxx(арг1, арг2, ...)+`.
+
+Услед ограничења језика Ruby (функција може да има максимално 15 аргумената), функција `+Weechat.config_new_option+` прихвата функције повратног позива у низу од 6 стрингова (3 повратна позива + 3 стринга са подацима), тако да позив ове функције изгледа овако:
+
+[source, ruby]
+----
+Weechat.config_new_option(config, section, "name", "string", "description of option", "", 0, 0,
+ "value", "value", 0, ["check_cb", "", "change_cb", "", "delete_cb", ""])
+----
+
+И функција `+Weechat.bar_new+` прима боје у низу од 4 стринга (color_fg, color_delim, color_bg, color_bg_inactive), тако да позив ове функције изгледа овако:
+
+[source, ruby]
+----
+Weechat.bar_new("name", "off", "0", "window", "", "left", "vertical", "vertical", "0", "0",
+ ["default", "default", "default", "default"], "0", "items")
+----
+
+[[language_lua]]
+==== Lua
+
+[[lua_functions]]
+===== Функције
+
+Функције се позивају са `+weechat.xxx(арг1, арг2, ...)+`.
+
+[[language_tcl]]
+==== Tcl
+
+[[tcl_functions]]
+===== Функције
+
+Функције се позивају са `+weechat::xxx арг1 арг2 ...+`.
+
+[[language_guile]]
+==== Guile (Scheme)
+
+[[guile_functions]]
+===== Функције
+
+Функције се позивају са `+(weechat:xxx арг1 арг2 ...)+`.
+
+Следеће функције узимају једну листу аргумената (уместо више аргумената као код осталих функција), јер број аргумената прелази дозвољен максимални број аргумената у језику Guile:
+
+* config_new_section
+* config_new_option
+* bar_new
+
+[[language_javascript]]
+==== JavaScript
+
+[[javascript_functions]]
+===== Функције
+
+Функције се позивају са `+weechat.xxx(арг1, арг2, ...);+`.
+
+[[language_php]]
+==== PHP
+
+[[php_functions]]
+===== Функције
+
+Функције се позивају са `+weechat_xxx(арг1, арг2, ...);+`.
+
+[[register_function]]
+=== Функција за регистрацију
+
+Све WeeChat скрипте морају да се „пријаве” програму WeeChat, и то мора да буде прва WeeChat функција која се позива у скрипти.
+
+Прототип (Python):
+
+[source, python]
+----
+def register(name: str, author: str, version: str, license: str, description: str, shutdown_function: str, charset: str) -> int: ...
+----
+
+Аргументи:
+
+* _име_: стринг, интерно име скрипте
+* _аутор_: стринг, име аутора
+* _верзија_: стринг, верзија скрипте
+* _лиценца_: стринг, лиценца скрипте
+* _опис_: стринг, кратак опис скрипте
+* _искључ_функција_: стринг, име функције која се позива када се скрипте уклања из меморије (може бити и празан стринг)
+* _скуп_кар_: стринг, скуп карактера скрипте (ако је ваша скрипта UTF-8, овде можете да користите празну вредности, јер је UTF-8 подразумевани скуп карактера)
+
+Пример скрипте, за сваки језик:
+
+* Python:
+
+[source, python]
+----
+import weechat
+
+weechat.register("test_python", "FlashCode", "1.0", "GPL3", "Test script", "", "")
+weechat.prnt("", "Поздрав од python скрипте!")
+----
+
+* Perl:
+
+[source, perl]
+----
+weechat::register("test_perl", "FlashCode", "1.0", "GPL3", "Test script", "", "");
+weechat::print("", "Поздрав од perl скрипте!");
+----
+
+* Ruby:
+
+[source, ruby]
+----
+def weechat_init
+ Weechat.register("test_ruby", "FlashCode", "1.0", "GPL3", "Test script", "", "")
+ Weechat.print("", "Поздрав од ruby скрипте!")
+ return Weechat::WEECHAT_RC_OK
+end
+----
+
+* Lua:
+
+[source, lua]
+----
+weechat.register("test_lua", "FlashCode", "1.0", "GPL3", "Test script", "", "")
+weechat.print("", "Поздрав од lua скрипте!")
+----
+
+* Tcl:
+
+[source, tcl]
+----
+weechat::register "test_tcl" "FlashCode" "1.0" "GPL3" "Test script" "" ""
+weechat::print "" "Поздрав од tcl скрипте!"
+----
+
+* Guile (Scheme):
+
+[source, lisp]
+----
+(weechat:register "test_scheme" "FlashCode" "1.0" "GPL3" "Test script" "" "")
+(weechat:print "" "Поздрав од scheme скрипте!")
+----
+
+* JavaScript:
+
+[source, javascript]
+----
+weechat.register("test_js", "FlashCode", "1.0", "GPL3", "Test script", "", "");
+weechat.print("", "Поздрав од javascript скрипте!");
+----
+
+* PHP:
+
+[source, php]
+----
+weechat_register('test_php', 'FlashCode', '1.0', 'GPL3', 'Test script', '', '');
+weechat_print('', 'Поздрав од PHP скрипте!');
+----
+
+[[load_script]]
+=== Учитавање скрипте
+
+За учитавање скрипти се препоручује употреба додатка „script”, на пример:
+
+----
+/script load script.py
+/script load script.pl
+/script load script.rb
+/script load script.lua
+/script load script.tcl
+/script load script.scm
+/script load script.js
+/script load script.php
+----
+
+Сваки језик има и своју команду:
+
+----
+/python load script.py
+/perl load script.pl
+/ruby load script.rb
+/lua load script.lua
+/tcl load script.tcl
+/guile load script.scm
+/javascript load script.js
+/php load script.php
+----
+
+Можете направити линк у директоријуму _language/autoload_ ако желите да се скрипта аутоматски учитава када се програм WeeChat покреће.
+
+На пример, са језиком Python:
+
+----
+$ cd ~/.local/share/weechat/python/autoload
+$ ln -s ../script.py
+----
+
+[NOTE]
+Када се скрипта инсталира командом `/script install`, линк у _autoload_ директоријуму се аутоматски креира.
+
+[[differences_with_c_api]]
+== Разлике у односу на C API
+
+API скриптовања је скоро у потпуности исти као и API C додатака. Можете да погледате следећи линк: weechat_plugin_api.sr.html[WeeChat референца API додатака] у вези детаља сваке функције у API: прототип, аргументи, повратне вредности, примери.
+
+Важно је да се направи разлика између _додатка_ и _скрипте_: _додатак_ је бинарни фајл који се компајлира и учитава командом `/plugin`, док је _скрипта_ текст фајл који се учитава додатком као што је _python_ командом `/python`.
+
+Када ваша скрипта _test.py_ позива WeeChat API функцију, путања је оваква:
+
+....
+ ┌──────────────────────┐ ╔══════════════════╗
+ │ python додатак │ ║ WeeChat „језгро” ║
+ ├────────────┬─────────┤ ╟─────────┐ ║
+test.py ─────► │ script API │ C API │ ─────► ║ C API │ ║
+ └────────────┴─────────┘ ╚═════════╧════════╝
+....
+
+Када WeeChat позове функцију повратног позива у вашој скрипти _test.py_, путања бити обрнута у односу на претходну путању:
+
+....
+╔══════════════════╗ ┌──────────────────────┐
+║ WeeChat „језгро” ║ │ python додатак │
+║ ┌─────────╢ ├─────────┬────────────┤
+║ │ C API ║ ─────► │ C API │ script API │ ─────► test.py
+╚════════╧═════════╝ └─────────┴────────────┘
+....
+
+[[pointers]]
+=== Показивачи
+
+Као што вероватно већ знате, у скриптама нема правих „показивача”. Тако да када API функције врате показивач, он се за потребе скрипте конвертује у стринг.
+
+На пример, ако функција врати показивач 0x1234ab56, скрипта ће примити стринг „0x1234ab56”.
+
+А када API функција очекује показивач у аргументима, скрипта мора да проследи ту стринг вредност. C додатак ће да га конвертује у реални показивач пре него што позове C API функцију.
+
+Дозвољени су празни стрингови или „0x0”. На пример, ако желите да испишете податке у бафер језгра (главни WeeChat бафер), можете урадити следеће:
+
+[source, python]
+----
+weechat.prnt("", "здраво!")
+----
+
+[WARNING]
+Из разлога брзине, програм WeeChat у многим функцијама не проверава исправност вашег показивача. Ваш посао је да проверите да ли прослеђујете важећи показивач, у супротном бисте могли видети фин извештај о краху ;)
+
+[[callbacks]]
+=== Функције повратног позива
+
+Скоро све WeeChat функције повратног позива морају да врате WEECHAT_RC_OK или WEECHAT_RC_ERROR (изузетак од овог правила је функција повратног позива модификатора, она враћа стринг).
+
+C функције повратног позива користе „callback_pointer” и „callback_data” аргументе, и то су показивачи. У API скриптовања постоји само „callback_data” (или „data”), и то је стринг, а не показивач.
+
+Пример функције повратног позива, за сваки језик:
+
+* Python:
+
+[source, python]
+----
+def timer_cb(data, remaining_calls):
+ weechat.prnt("", "timer! data=%s" % data)
+ return weechat.WEECHAT_RC_OK
+
+weechat.hook_timer(1000, 0, 1, "timer_cb", "test")
+----
+
+* Perl:
+
+[source, perl]
+----
+sub timer_cb {
+ my ($data, $remaining_calls) = @_;
+ weechat::print("", "timer! data=$data");
+ return weechat::WEECHAT_RC_OK;
+}
+
+weechat::hook_timer(1000, 0, 1, "timer_cb", "test");
+----
+
+* Ruby:
+
+[source, ruby]
+----
+def timer_cb(data, remaining_calls)
+ Weechat.print("", "timer! data=#{data}");
+ return Weechat::WEECHAT_RC_OK
+end
+
+Weechat.hook_timer(1000, 0, 1, "timer_cb", "test");
+----
+
+* Lua:
+
+[source, lua]
+----
+function timer_cb(data, remaining_calls)
+ weechat.print("", "timer! data="..data)
+ return weechat.WEECHAT_RC_OK
+end
+
+weechat.hook_timer(1000, 0, 1, "timer_cb", "test")
+----
+
+* Tcl:
+
+[source, tcl]
+----
+proc timer_cb { data remaining_calls } {
+ weechat::print {} "timer! data=$data"
+ return $::weechat::WEECHAT_RC_OK
+}
+
+weechat::hook_timer 1000 0 1 timer_cb test
+----
+
+* Guile (Scheme):
+
+[source, lisp]
+----
+(define (timer_cb data remaining_calls)
+ (weechat:print "" (string-append "timer! data=" data))
+ weechat:WEECHAT_RC_OK
+)
+
+(weechat:hook_timer 1000 0 1 "timer_cb" "test")
+----
+
+* JavaScript:
+
+[source, javascript]
+----
+function timer_cb(data, remaining_calls) {
+ weechat.print("", "timer! data=" + data);
+ return weechat.WEECHAT_RC_OK;
+}
+
+weechat.hook_timer(1000, 0, 1, "timer_cb", "test");
+----
+
+* PHP:
+
+[source, php]
+----
+$timer_cb = function ($data, $remaining_calls) {
+ weechat_print('', 'timer! data=' . $data);
+ return WEECHAT_RC_OK;
+};
+
+weechat_hook_timer(1000, 0, 1, $timer_cb, 'test');
+----
+
+[[script_api]]
+== API скриптовања
+
+За више информација о функцијама које постоје у API, молимо вас да прочитате link:weechat_plugin_api.sr.html[WeeChat референтни приручник API додатака].
+
+[[script_api_functions]]
+=== Функције
+
+Листа функција у API скриптовања:
+
+[width="100%", cols="1,3", options="header"]
+|===
+| Категорија | Функције
+
+| опште |
+ register
+
+| додаци |
+ plugin_get_name
+
+| стрингови |
+ charset_set +
+ iconv_to_internal +
+ iconv_from_internal +
+ gettext +
+ ngettext +
+ strlen_screen +
+ string_match +
+ string_match_list +
+ string_has_highlight +
+ string_has_highlight_regex +
+ string_mask_to_regex +
+ string_format_size +
+ string_color_code_size +
+ string_remove_color +
+ string_is_command_char +
+ string_input_for_buffer +
+ string_eval_expression +
+ string_eval_path_home
+
+| директоријуми |
+ mkdir_home +
+ mkdir +
+ mkdir_parents
+
+| сортиране листе |
+ list_new +
+ list_add +
+ list_search +
+ list_search_pos +
+ list_casesearch +
+ list_casesearch_pos +
+ list_get +
+ list_set +
+ list_next +
+ list_prev +
+ list_string +
+ list_size +
+ list_remove +
+ list_remove_all +
+ list_free
+
+| кофнигурациони фајлови |
+ config_new +
+ config_new_section +
+ config_search_section +
+ config_new_option +
+ config_search_option +
+ config_string_to_boolean +
+ config_option_reset +
+ config_option_set +
+ config_option_set_null +
+ config_option_unset +
+ config_option_rename +
+ config_option_is_null +
+ config_option_default_is_null +
+ config_boolean +
+ config_boolean_default +
+ config_integer +
+ config_integer_default +
+ config_string +
+ config_string_default +
+ config_color +
+ config_color_default +
+ config_write_option +
+ config_write_line +
+ config_write +
+ config_read +
+ config_reload +
+ config_option_free +
+ config_section_free_options +
+ config_section_free +
+ config_free +
+ config_get +
+ config_get_plugin +
+ config_is_set_plugin +
+ config_set_plugin +
+ config_set_desc_plugin +
+ config_unset_plugin
+
+| тастерске пречице |
+ key_bind +
+ key_unbind
+
+| приказ |
+ prefix +
+ color +
+ print (за python: prnt) +
+ print_date_tags (за python: prnt_date_tags) +
+ print_y (за python: prnt_y) +
+ log_print
+
+| куке |
+ hook_command +
+ hook_command_run +
+ hook_timer +
+ hook_fd +
+ hook_process +
+ hook_process_hashtable +
+ hook_connect +
+ hook_line +
+ hook_print +
+ hook_signal +
+ hook_signal_send +
+ hook_hsignal +
+ hook_hsignal_send +
+ hook_config +
+ hook_completion +
+ hook_modifier +
+ hook_modifier_exec +
+ hook_info +
+ hook_info_hashtable +
+ hook_infolist +
+ hook_focus +
+ hook_set +
+ unhook +
+ unhook_all
+
+| бафери |
+ buffer_new +
+ current_buffer +
+ buffer_search +
+ buffer_search_main +
+ buffer_clear +
+ buffer_close +
+ buffer_merge +
+ buffer_unmerge +
+ buffer_get_integer +
+ buffer_get_string +
+ buffer_get_pointer +
+ buffer_set +
+ buffer_string_replace_local_var +
+ buffer_match_list
+
+| прозори |
+ current_window +
+ window_search_with_buffer +
+ window_get_integer +
+ window_get_string +
+ window_get_pointer +
+ window_set_title
+
+| листа надимака |
+ nicklist_add_group +
+ nicklist_search_group +
+ nicklist_add_nick +
+ nicklist_search_nick +
+ nicklist_remove_group +
+ nicklist_remove_nick +
+ nicklist_remove_all +
+ nicklist_group_get_integer +
+ nicklist_group_get_string +
+ nicklist_group_get_pointer +
+ nicklist_group_set +
+ nicklist_nick_get_integer +
+ nicklist_nick_get_string +
+ nicklist_nick_get_pointer +
+ nicklist_nick_set
+
+| траке |
+ bar_item_search +
+ bar_item_new +
+ bar_item_update +
+ bar_item_remove +
+ bar_search +
+ bar_new +
+ bar_set +
+ bar_update +
+ bar_remove
+
+| команде |
+ command +
+ command_options
+
+| довршавање |
+ completion_new +
+ completion_search +
+ completion_get_string +
+ completion_list_add +
+ completion_free
+
+| infos |
+ info_get +
+ info_get_hashtable
+
+| infolists |
+ infolist_new +
+ infolist_new_item +
+ infolist_new_var_integer +
+ infolist_new_var_string +
+ infolist_new_var_pointer +
+ infolist_new_var_time +
+ infolist_get +
+ infolist_next +
+ infolist_prev +
+ infolist_reset_item_cursor +
+ infolist_search_var +
+ infolist_fields +
+ infolist_integer +
+ infolist_string +
+ infolist_pointer +
+ infolist_time +
+ infolist_free
+
+| hdata |
+ hdata_get +
+ hdata_get_var_offset +
+ hdata_get_var_type_string +
+ hdata_get_var_array_size +
+ hdata_get_var_array_size_string +
+ hdata_get_var_hdata +
+ hdata_get_list +
+ hdata_check_pointer +
+ hdata_move +
+ hdata_search +
+ hdata_char +
+ hdata_integer +
+ hdata_long +
+ hdata_string +
+ hdata_pointer +
+ hdata_time +
+ hdata_hashtable +
+ hdata_compare +
+ hdata_update +
+ hdata_get_string
+
+| ажурирање |
+ upgrade_new +
+ upgrade_write_object +
+ upgrade_read +
+ upgrade_close
+|===
+
+[[script_api_constants]]
+=== Константе
+
+Листа константи у API скриптовања:
+
+[width="100%", cols="1,3", options="header"]
+|===
+| Категорија | Константе
+
+| повратни кодови |
+ `WEECHAT_RC_OK` (цео број) +
+ `WEECHAT_RC_OK_EAT` (цео број) +
+ `WEECHAT_RC_ERROR` (цео број)
+
+| конфигурациони фајлови |
+ `WEECHAT_CONFIG_READ_OK` (цео број) +
+ `WEECHAT_CONFIG_READ_MEMORY_ERROR` (цео број) +
+ `WEECHAT_CONFIG_READ_FILE_NOT_FOUND` (цео број) +
+ `WEECHAT_CONFIG_WRITE_OK` (цео број) +
+ `WEECHAT_CONFIG_WRITE_ERROR` (цео број) +
+ `WEECHAT_CONFIG_WRITE_MEMORY_ERROR` (цео број) +
+ `WEECHAT_CONFIG_OPTION_SET_OK_CHANGED` (цео број) +
+ `WEECHAT_CONFIG_OPTION_SET_OK_SAME_VALUE` (цео број) +
+ `WEECHAT_CONFIG_OPTION_SET_ERROR` (цео број) +
+ `WEECHAT_CONFIG_OPTION_SET_OPTION_NOT_FOUND` (цео број) +
+ `WEECHAT_CONFIG_OPTION_UNSET_OK_NO_RESET` (цео број) +
+ `WEECHAT_CONFIG_OPTION_UNSET_OK_RESET` (цео број) +
+ `WEECHAT_CONFIG_OPTION_UNSET_OK_REMOVED` (цео број) +
+ `WEECHAT_CONFIG_OPTION_UNSET_ERROR` (цео број)
+
+| сортиране листе |
+ `WEECHAT_LIST_POS_SORT` (стринг) +
+ `WEECHAT_LIST_POS_BEGINNING` (стринг) +
+ `WEECHAT_LIST_POS_END` (стринг)
+
+| врућа листа |
+ `WEECHAT_HOTLIST_LOW` (стринг) +
+ `WEECHAT_HOTLIST_MESSAGE` (стринг) +
+ `WEECHAT_HOTLIST_PRIVATE` (стринг) +
+ `WEECHAT_HOTLIST_HIGHLIGHT` (стринг)
+
+| кука process |
+ `WEECHAT_HOOK_PROCESS_RUNNING` (цео број) +
+ `WEECHAT_HOOK_PROCESS_ERROR` (цео број)
+
+| кука connect |
+ `WEECHAT_HOOK_CONNECT_OK` (цео број) +
+ `WEECHAT_HOOK_CONNECT_ADDRESS_NOT_FOUND` (цео број) +
+ `WEECHAT_HOOK_CONNECT_IP_ADDRESS_NOT_FOUND` (цео број) +
+ `WEECHAT_HOOK_CONNECT_CONNECTION_REFUSED` (цео број) +
+ `WEECHAT_HOOK_CONNECT_PROXY_ERROR` (цео број) +
+ `WEECHAT_HOOK_CONNECT_LOCAL_HOSTNAME_ERROR` (цео број) +
+ `WEECHAT_HOOK_CONNECT_GNUTLS_INIT_ERROR` (цео број) +
+ `WEECHAT_HOOK_CONNECT_GNUTLS_HANDSHAKE_ERROR` (цео број) +
+ `WEECHAT_HOOK_CONNECT_MEMORY_ERROR` (цео број) +
+ `WEECHAT_HOOK_CONNECT_TIMEOUT` (цео број) +
+ `WEECHAT_HOOK_CONNECT_SOCKET_ERROR` (цео број)
+
+| кука signal |
+ `WEECHAT_HOOK_SIGNAL_STRING` (стринг) +
+ `WEECHAT_HOOK_SIGNAL_INT` (стринг) +
+ `WEECHAT_HOOK_SIGNAL_POINTER` (стринг)
+|===
+
+[[common_tasks]]
+== Уобичајени задаци
+
+Ово поглавље приказује неке уобичајене задатке, уз примере. Овде се користе само делимичне ствари из API, за потпуно упутство, погледајте link:weechat_plugin_api.sr.html[WeeChat референтни приручник API додатака].
+
+[[buffers]]
+=== Бафери
+
+[[buffers_display_messages]]
+==== Приказ порука
+
+Празан стринг се често користи за рад са WeeChat бафером језгра. За остале бафере, морате навести показивач (као стринг, погледајте <<pointers,показивачи>>).
+
+Примери:
+
+[source, python]
+----
+# приказ „здраво” у баферу језгра
+weechat.prnt("", "здраво")
+
+# приказ „здраво” у баферу језгра, али без уписа у лог фајл
+# (само у верзијама >= 0.3.3)
+weechat.prnt_date_tags("", 0, "no_log", "здраво")
+
+# приказ префикса „==>” и поруке „здраво” у текућем баферу
+# (префикс и порука су раздвојени таб карактером)
+weechat.prnt(weechat.current_buffer(), "==>\tздраво")
+
+# приказ поруке о грешки у баферу језгра (са префиксом грешка)
+weechat.prnt("", "%sпогрешни аргументи" % weechat.prefix("грешка"))
+
+# приказ поруке са бојом у баферу језгра
+weechat.prnt("", "текст %sжуто на плавом" % weechat.color("yellow,blue"))
+
+# претрага бафера и приказ поруке
+# (пуно име бафера је додатак.име, на пример: „irc.libera.#weechat”)
+buffer = weechat.buffer_search("irc", "libera.#weechat")
+weechat.prnt(buffer, "порука на #weechat каналу")
+
+# још једно решење за проналажење IRC бафера (боље)
+# (приметите да су сервер и канал раздвојени запетом)
+buffer = weechat.info_get("irc_buffer", "libera,#weechat")
+weechat.prnt(buffer, "порука на #weechat каналу")
+----
+
+[NOTE]
+Print функција се назива `prnt` у Python, а `print` у осталим језицима.
+
+[[buffers_send_text]]
+==== Слање текста у бафер
+
+Текст или команду можете да пошаљете у бафер. Ово је потпуно исто као да откуцате текст на командној линији и притиснете [Ентер].
+
+Примери:
+
+[source, python]
+----
+# извршавање команде „/help” у текућем баферу (резултат иде у бафер језгра)
+weechat.command("", "/help")
+
+# слање „hello” на #weechat IRC канал (корисници на каналу ће видети поруку)
+buffer = weechat.info_get("irc_buffer", "libera,#weechat")
+weechat.command(buffer, "hello")
+----
+
+[[buffers_new]]
+==== Креирање новог бафера
+
+У својој скрипти можете креирати нови бафер, па да га затим користите за приказ порука.
+
+Могу да се позову две функције повратног позива (нису обавезне): једна за улазне податке (када откуцате неки текст и притиснете [Ентер] у баферу), друга се позива када се бафер затвори (на пример, са `/buffer close`).
+
+Пример:
+
+[source, python]
+----
+# функција повратног позива за податке примљене са улаза
+def buffer_input_cb(data, buffer, input_data):
+ # ...
+ return weechat.WEECHAT_RC_OK
+
+# функција повратног позива која се позива када се бафер затвори
+def buffer_close_cb(data, buffer):
+ # ...
+ return weechat.WEECHAT_RC_OK
+
+# креирање бафера
+buffer = weechat.buffer_new("mybuffer", "buffer_input_cb", "", "buffer_close_cb", "")
+
+# постављање наслова
+weechat.buffer_set(buffer, "title", "Ово је наслов мог бафера.")
+
+# искључивање логовања, постављањем локалне променљиве „no_log” на „1”
+weechat.buffer_set(buffer, "localvar_set_no_log", "1")
+----
+
+[[buffers_properties]]
+==== Особине бафера
+
+Особине бафера можете да читате као стринг, цели број или показивач.
+
+Примери:
+
+[source, python]
+----
+buffer = weechat.current_buffer()
+
+number = weechat.buffer_get_integer(buffer, "number")
+name = weechat.buffer_get_string(buffer, "name")
+short_name = weechat.buffer_get_string(buffer, "short_name")
+----
+
+Могyће је додавање, читање или брисање локалних променњивих у баферу:
+
+[source, python]
+----
+# додавање локалне променљиве
+weechat.buffer_set(buffer, "localvar_set_myvar", "my_value")
+
+# читање локалне променљиве
+myvar = weechat.buffer_get_string(buffer, "localvar_myvar")
+
+# брисање локалне променљиве
+weechat.buffer_set(buffer, "localvar_del_myvar", "")
+----
+
+Ако желите да видите локалне променљиве у баферу, извршите следећу комаду у програму WeeChat:
+
+----
+/buffer listvar
+----
+
+[[hooks]]
+=== Куке
+
+[[hook_command]]
+==== Додавање нове команде
+
+Нову команду додајете са `+hook_command+`. Можете да употребите шаблон прилагођеног довршавања за довршавање аргумената ваше команде.
+
+Пример:
+
+[source, python]
+----
+def my_command_cb(data, buffer, args):
+ # ...
+ return weechat.WEECHAT_RC_OK
+
+hook = weechat.hook_command("мојфилтер", "опис за мојфилтер",
+ "[list] | [enable|disable|toggle [име]] | [add име plugin.buffer tags regex] | [del име|-all]",
+ "опис аргумената...",
+ "list"
+ " || enable %(filters_names)"
+ " || disable %(filters_names)"
+ " || toggle %(filters_names)"
+ " || add %(filters_names) %(buffers_plugins_names)|*"
+ " || del %(filters_names)|-all",
+ "my_command_cb", "")
+----
+
+Па затим у програму WeeChat:
+
+----
+/help мојфилтер
+
+/мојфилтер аргументи...
+----
+
+[[hook_timer]]
+==== Додавање тајмера
+
+Тајмер се додаје са `+hook_timer+`.
+
+Пример:
+
+[source, python]
+----
+def timer_cb(data, remaining_calls):
+ # ...
+ return weechat.WEECHAT_RC_OK
+
+# тајмер се позива сваког минута када су секунде 00
+weechat.hook_timer(60 * 1000, 60, 0, "timer_cb", "")
+----
+
+[[hook_process]]
+==== Покретање процеса у позадини
+
+Процес можете да покренете у позадини са `+hook_process+`. Ваша функција повратног позива ће се позвати онда када подаци буду спремни. Може да се позива више пута.
+
+У последњем позиву ваше функције повратног позива, _rc_ се поставља на 0 или позитивну вредност, то је повратни кôд команде.
+
+Пример:
+
+[source, python]
+----
+process_output = ""
+
+def my_process_cb(data, command, rc, out, err):
+ global process_output
+ if out != "":
+ process_output += out
+ if int(rc) >= 0:
+ weechat.prnt("", process_output)
+ return weechat.WEECHAT_RC_OK
+
+weechat.hook_process("/bin/ls -l /etc", 10 * 1000, "my_process_cb", "")
+----
+
+[[url_transfer]]
+==== URL пренос
+
+_Ново у верзији 0.3.7._
+
+Ако желите да преузмете URL (или пошаљете на URL), морате да употребите функцију `+hook_process+`, или `+hook_process_hashtable+` ако је потребно да поставите опције URL преноса.
+
+Пример URL преноса без опције: HTML страница ће се примити као „out” у функцији повратног позива (стандардни излаз процеса):
+
+[source, python]
+----
+# Приказ тренутне стабилне верзије програма WeeChat.
+weechat_version = ""
+
+def weechat_process_cb(data, command, rc, out, err):
+ global weechat_version
+ if out != "":
+ weechat_version += out
+ if int(rc) >= 0:
+ weechat.prnt("", "Тренутна стабилна WeeChat верзија је: %s" % weechat_version)
+ return weechat.WEECHAT_RC_OK
+
+weechat.hook_process("url:https://weechat.org/dev/info/stable/",
+ 30 * 1000, "weechat_process_cb", "")
+----
+
+[TIP]
+Све доступне информације у вези програма WeeChat се налазе на страници https://weechat.org/dev/info
+
+Пример URL преноса са опцијом: преузимање најновијег WeeChat развојног пакета у фајл _/tmp/weechat-devel.tar.gz_:
+
+[source, python]
+----
+def my_process_cb(data, command, rc, out, err):
+ if int(rc) >= 0:
+ weechat.prnt("", "Крај преноса (rc=%s)" % rc)
+ return weechat.WEECHAT_RC_OK
+
+weechat.hook_process_hashtable("url:https://weechat.org/files/src/weechat-devel.tar.gz",
+ {"file_out": "/tmp/weechat-devel.tar.gz"},
+ 30 * 1000, "my_process_cb", "")
+----
+
+За више информација у вези URL преноса, као и за доступне опције, погледајте функције `+hook_process+` и `+hook_process_hashtable+` у link:weechat_plugin_api.sr.html#_hook_process[WeeChat референтни приручник API додатака].
+
+[[config_options]]
+=== Конфигурација / опције
+
+[[config_options_set_script]]
+==== Постављање опција за скрипту
+
+Функција `+config_is_set_plugin+` се користи за проверу да ли је опција постављена или не, а `+config_set_plugin+` за постављање опције.
+
+Пример:
+
+[source, python]
+----
+script_options = {
+ "option1": "value1",
+ "option2": "value2",
+ "option3": "value3",
+}
+for option, default_value in script_options.items():
+ if not weechat.config_is_set_plugin(option):
+ weechat.config_set_plugin(option, default_value)
+----
+
+[[config_options_detect_changes]]
+==== Откривање измена
+
+Ако желите обавештење када корисник измени неке опције скрипте, морате да користите `+hook_config+`.
+
+Пример:
+
+[source, python]
+----
+SCRIPT_NAME = "myscript"
+
+# ...
+
+def config_cb(data, option, value):
+ """Повратни позив се позива када се опција скрипте измени."""
+ # на пример, читање свих опција у променљиве скрипте...
+ # ...
+ return weechat.WEECHAT_RC_OK
+
+# ...
+
+weechat.hook_config("plugins.var.python." + SCRIPT_NAME + ".*", "config_cb", "")
+# за остале језике, измените „python” именом свој језика (perl/ruby/lua/tcl/guile/javascript)
+----
+
+[[config_options_weechat]]
+==== Читање опција програма WeeChat
+
+Фунцкија `+config_get+` враћа показивач на опцију. Затим, у зависности од типа опције, морате да позовете `+config_string+`, `+config_boolean+`, `+config_integer+` или `+config_color+`.
+
+[source, python]
+----
+# string
+weechat.prnt("", "вредност опције weechat.look.item_time_format је: %s"
+ % (weechat.config_string(weechat.config_get("weechat.look.item_time_format"))))
+
+# boolean
+weechat.prnt("", "вредност опције weechat.look.day_change је: %d"
+ % (weechat.config_boolean(weechat.config_get("weechat.look.day_change"))))
+
+# integer
+weechat.prnt("", "вредност опције weechat.look.scroll_page_percent је: %d"
+ % (weechat.config_integer(weechat.config_get("weechat.look.scroll_page_percent"))))
+
+# color
+weechat.prnt("", "вредност опције weechat.color.chat_delimiters је: %s"
+ % (weechat.config_color(weechat.config_get("weechat.color.chat_delimiters"))))
+----
+
+[[irc]]
+=== IRC
+
+[[irc_catch_messages]]
+==== Хватање порука
+
+IRC додатак шаље четири сигнала за примљену поруку (`xxx` је IRC интерно име сервера, `yyy` је IRC име команде као што је JOIN, QUIT, PRIVMSG, 301, ...):
+
+xxx,irc_in_yyy::
+ сигнал који се шаље пре обраде поруке, само ако се порука *не* игнорише
+
+xxx,irc_in2_yyy::
+ сигнал који се шаље након обраде поруке, само ако се порука *не* игнорише
+
+xxx,irc_raw_in_yyy::
+ сигнал који се шаље пре обраде поруке, чак и ако се порука игнорише
+
+xxx,irc_raw_in2_yyy::
+ сигнал који се шаље након обраде поруке, чак и ако се порука игнорише
+
+[source, python]
+----
+def join_cb(data, signal, signal_data):
+ # сигнал је на пример: „libera,irc_in2_join”
+ # signal_data је IRC порука, на пример: „:nick!user@host JOIN :#channel”
+ server = signal.split(",")[0]
+ msg = weechat.info_get_hashtable("irc_message_parse", {"message": signal_data})
+ buffer = weechat.info_get("irc_buffer", "%s,%s" % (server, msg["channel"]))
+ if buffer:
+ weechat.prnt(buffer, "%s (%s) се придружио овом каналу!" % (msg["nick"], msg["host"]))
+ return weechat.WEECHAT_RC_OK
+
+# овде је корисни да се као сервер употреби „*”, како би се хватале JOIN поруке
+# на свим IRC серверима
+weechat.hook_signal("*,irc_in2_join", "join_cb", "")
+----
+
+[[irc_modify_messages]]
+==== Измена порука
+
+IRC додатак шаље два „модификатора” за сваку примљену поруку („xxx” је IRC команда), тако да можете да је измените:
+
+irc_in_xxx::
+ модификатор који се шаље пре декодирања у скуп карактера: користите уз опрез, стринг може да садржи неважеће UTF-8 податке; користите само за сирове операције над поруком
+
+irc_in2_xxx::
+ модификатор који се шаље након декодирања у скуп карактера, тако да је примљени стринг увек важећи UTF-8 (*препоручује се*)
+
+[source, python]
+----
+def modifier_cb(data, modifier, modifier_data, string):
+ # у све примљене поруке се додаје име сервера
+ # (OK ово и није баш корисно, али то је само пример!)
+ return "%s %s" % (string, modifier_data)
+
+weechat.hook_modifier("irc_in2_privmsg", "modifier_cb", "")
+----
+
+[WARNING]
+Неправилно формирана порука би могла да сруши програм WeeChat или да изазове озбиљне проблеме!
+
+[[irc_message_parse]]
+==== Парсирање поруке
+
+_Ново у верзији 0.3.4._
+
+IRC поруку можете да парсирате са info_hashtable под именом „irc_message_parse”.
+
+Резултат је хеш табела са следећим кључевима (вредности за пример су изграђене из следеће поруке: `+@time=2015-06-27T16:40:35.000Z :nick!user@host PRIVMSG #weechat :здраво!+`):
+
+[width="100%", cols="3,^2,10,7", options="header"]
+|===
+| Кључ | Од WeeChat ^(1)^ | Опис | Пример
+
+| tags | 0.4.0 |
+ Ознаке у поруци (може бити празно). |
+ `+time=2015-06-27T16:40:35.000Z+`
+
+| message_without_tags | 0.4.0 |
+ Порука без ознака (иста као оригинална ако нема ознака у њој). |
+ `+:nick!user@host PRIVMSG #weechat :здраво!+`
+
+| nick | 0.3.4 |
+ Надимак порекла. |
+ `+nick+`
+
+| user | 2.7 |
+ Корисник порекла. |
+ `+user+`
+
+| host | 0.3.4 |
+ Хост порекла (укључујући и надимак). |
+ `+nick!user@host+`
+
+| command | 0.3.4 |
+ Команда (_PRIVMSG_, _NOTICE_, ...). |
+ `+PRIVMSG+`
+
+| channel | 0.3.4 |
+ Циљни канал. |
+ `+#weechat+`
+
+| arguments | 0.3.4 |
+ Аргументи команде (укључујући и канал). |
+ `+#weechat :здраво!+`
+
+| text | 1.3 |
+ Текст (на пример, корисникова порука). |
+ `+здраво!+`
+
+| pos_command | 1.3 |
+ Индекс _command_ у поруци („-1” ако се _command_ не пронађе). |
+ `+47+`
+
+| pos_arguments | 1.3 |
+ Индекс _arguments_ у поруци („-1” ако се _arguments_ не пронађе). |
+ `+55+`
+
+| pos_channel | 1.3 |
+ Индекс _channel_ у поруци („-1” ако се _channel_ не пронађе). |
+ `+55+`
+
+| pos_text | 1.3 |
+ Индекс _text_ у поруци („-1” ако се _text_ не пронађе). |
+ `+65+`
+|===
+
+[NOTE]
+^(1)^ Овај кључ је уведен у наведеној верзији програма WeeChat
+
+[source, python]
+----
+dict = weechat.info_get_hashtable(
+ "irc_message_parse",
+ {"message": "@time=2015-06-27T16:40:35.000Z :nick!user@host PRIVMSG #weechat :здраво!"})
+
+# dict == {
+# "tags": "time=2015-06-27T16:40:35.000Z",
+# "message_without_tags": ":nick!user@host PRIVMSG #weechat :здраво!",
+# "nick": "nick",
+# "user": "user",
+# "host": "nick!user@host",
+# "command": "PRIVMSG",
+# "channel": "#weechat",
+# "arguments": "#weechat :здраво!",
+# "text": "hello!",
+# "pos_command": "47",
+# "pos_arguments": "55",
+# "pos_channel": "55",
+# "pos_text": "65",
+# }
+----
+
+[[infos]]
+=== Информације
+
+[[infos_weechat_version]]
+==== Верзија програма WeeChat
+
+Најбољи начин да се провери верзија је да се затражи „version_number”, па да се уради целобројно поређење са хексадецималним бројем верзије.
+
+Пример:
+
+[source, python]
+----
+version = weechat.info_get("version_number", "") or 0
+if int(version) >= 0x00030200:
+ weechat.prnt("", "Ово је WeeChat 0.3.2 или новији")
+else:
+ weechat.prnt("", "Ово је WeeChat 0.3.1 или старији")
+----
+
+[NOTE]
+Верзије ≤ 0.3.1.1 враћају празан стринг за _info_get("version_number")_ тако да морате проверити да враћена вредност *није* празна.
+
+Да бисте добили верзију као стринг:
+
+[source, python]
+----
+# ово ће да испише на пример „Верзија 0.3.2”
+weechat.prnt("", "Верзија %s" % weechat.info_get("version", ""))
+----
+
+[[infos_other]]
+==== Остале информације
+
+[source, python]
+----
+# WeeChat конфиг директоријум, на пример: „/home/user/.config/weechat”
+weechat.prnt("", "WeeChat конфиг дир: %s" % weechat.info_get("weechat_dir", ""))
+
+# неактивност тастатуре
+weechat.prnt("", "Неактивно је %s секунди" % weechat.info_get("inactivity", ""))
+----
+
+[[infolists]]
+=== Инфолисте
+
+[[infolists_read]]
+==== Читање инфолисте
+
+Можете да читате инфолисту коју изгради WeeChat или остали додаци.
+
+Пример:
+
+[source, python]
+----
+# читање infolist „buffer”, како би се добила листа бафера
+infolist = weechat.infolist_get("buffer", "", "")
+if infolist:
+ while weechat.infolist_next(infolist):
+ name = weechat.infolist_string(infolist, "name")
+ weechat.prnt("", "бафер: %s" % name)
+ weechat.infolist_free(infolist)
+----
+
+[IMPORTANT]
+Не заборавите да позовете `+infolist_free+` како бисте ослободите меморију коју користи infolist, јер програм WeeChat неће аутоматски ослободити меморију.
diff --git a/doc/sr/weechat_tester.sr.adoc b/doc/sr/weechat_tester.sr.adoc
new file mode 100644
index 000000000..84db8cb6f
--- /dev/null
+++ b/doc/sr/weechat_tester.sr.adoc
@@ -0,0 +1,116 @@
+= Водич за тестирање програма WeeChat
+:author: Sébastien Helleu
+:email: flashcode@flashtux.org
+:lang: sr
+:toc: left
+:toc-title: Садржај
+:sectnums:
+:docinfo1:
+
+
+[[purpose]]
+== Намена
+
+Многи захвални корисници су нас питали како могу да помогну развој програма WeeChat. Најлакши (у исто време и најкомпликованији) начин помоћи у развоју програма WeeChat је тестирање!
+
+Тестирање је веома важан део развоја софтвера и не би требало да се занемари. Када се имплементирају неке могућности, требало би и да се тестирају, али за неке могућности постоји превише случајева коришћења или су ти случајеви компликовани, па програмери не могу да испробају баш сваки случај.
+
+На пример: озлоглашени charset додатак је уведен у WeeChat верзије 0.2.2: нико од нас (програмери, људи који су дали допринос програму, и тестери) није користио канале са националним карактерима у својим именима, па када је објављена верзија 0.2.2, руски коринисници су нас засули примедбама. Да имамо више тестера, овако нешто се не би опет поновило у будућности.
+
+Тестирање стабилне верзије програма WeeChat нема смисла јер су програмери стално заузети имплементирањем нових ствари (и исправљањем старих багова).
+
+
+[[prepare_system]]
+== Припремите свој систем
+
+Пуно би нам помогло ако укључите Линукс _core_ фајлове: ако се програм WeeChat сруши, Линукс ће креирати фајл под именом _core_. Овај фајл садржи врло корисне дибаг информације, тако да прецизно можемо знати где је у програму WeeChat настао проблем.
+
+Ако користите _bash_ командно окружење, додајте следећу линију у свој _~/.bashrc_:
+
+----
+ulimit -c unlimited
+----
+
+
+[[download]]
+== Преузмите развојну верзију
+
+Свеж кôд (са најновијим баговима и могућностима) је чува у GIT репозиторијуму.
+
+Можете одлучити да га сами изградите (препоручени начин):
+
+* GIT верзија може да се изгради и инсталира паралелно са стабилном верзијом.
+* Није вам потребан root приступ, и не морате да жртвујете стабилну верзију програма WeeChat.
+
+[[get_sources]]
+=== Набавите и изградите изворне фајлове
+
+Најпре креирајте директоријум, на пример _weechat-git_:
+
+----
+$ mkdir ~/weechat-git
+$ cd ~/weechat-git
+----
+
+Ако имате инсталиран програм git, можете једноставно да клонирате git репозиторијум (препоручени начин):
+
+----
+$ git clone https://github.com/weechat/weechat.git
+$ cd weechat
+----
+
+[NOTE]
+Касније можете да извршите `git pull` у овом директоријуму, чиме преузимате делте са најновијим ажурирањима.
+
+У супротном можете да преузмете и распакујете _devel_ пакет:
+
+----
+$ wget https://weechat.org/files/src/weechat-devel.tar.bz2
+$ tar xvjf weechat-devel.tar.bz2
+$ cd weechat-devel
+----
+
+CMake се препоручује за изградњу изворних фајлова:
+
+----
+$ mkdir build
+$ cd build
+$ cmake .. -DCMAKE_INSTALL_PREFIX=$HOME/weechat-git -DWEECHAT_HOME=~/.weechat-dev -DCMAKE_BUILD_TYPE=Debug
+$ make
+$ make install
+----
+
+Ако немате CMake, ипак је могуће да употребите autotools:
+
+----
+$ ./autogen.sh
+$ ./configure --prefix=$HOME/weechat-git WEECHAT_HOME=~/.weechat-dev
+$ make
+$ make install
+----
+
+[[install_binary_package]]
+=== Инсталација бинарног пакета
+
+У зависности од ваше Линукс дистрибуције:
+
+* Debian: https://weechat.org/download/debian
+* Gentoo: https://weechat.org/download
+* ArchLinux: PKGBUILD са https://aur.archlinux.org/
+* остале: не знамо! Хехе.
+
+
+[[run]]
+== Покретање програма WeeChat
+
+Команда је:
+
+----
+$ ~/weechat-git/bin/weechat
+----
+
+Ако сте још увек будни, требало би да угледате познати интерфејс и да се хвалите тиме што поседујете најновију могућу верзију програма WeeChat. ;)
+
+Ако сада искусите чудно понашање (можда постоје проблеми или крах или може да прокључа ваше пиво) не оклевајте да се придружите каналу _#weechat_ на _irc.libera.chat_ и да нам испричате о проблему.
+
+Ако се програм не руши - реците нам и то, потребно нам је ваше извештавање!
diff --git a/doc/sr/weechat_user.sr.adoc b/doc/sr/weechat_user.sr.adoc
new file mode 100644
index 000000000..ad84b8350
--- /dev/null
+++ b/doc/sr/weechat_user.sr.adoc
@@ -0,0 +1,4378 @@
+= WeeChat корисничко упутство
+:author: Sébastien Helleu
+:email: flashcode@flashtux.org
+:lang: sr
+:toc: left
+:toclevels: 4
+:toc-title: Садржај
+:sectnums:
+:sectnumlevels: 3
+:docinfo1:
+
+
+Ово упутство описује WeeChat чет клијент и део је програма WeeChat.
+
+Последња верзија овог документа може да се нађе на следећој страници: https://weechat.org/doc
+
+
+[[introduction]]
+== Увод
+
+WeeChat (Wee Enhanced Environment for Chat) је бесплатни чет клијент, једноставан и брз, дизајниран за многе оперативне системе.
+
+[[features]]
+=== Могућности
+
+Основне могућности програма су:
+
+* подржавање разне протоколе (углавном IRC)
+* разни начини повезивања са сервером (преко SSL, IPv6, прокси)
+* мали је, брз и не оптерећује систем
+* прилагођавање и проширивање помоћу додатака и скрипти
+* сагласност са IRC RFC документима https://tools.ietf.org/html/rfc1459[1459], https://tools.ietf.org/html/rfc2810[2810], https://tools.ietf.org/html/rfc2811[2811], https://tools.ietf.org/html/rfc2812[2812] и https://tools.ietf.org/html/rfc2813[2813]
+* IRC прокси и релеј за удаљене интерфејсе
+* подржавање различитих платформи (GNU/Linux, *BSD, macOS, Windows и остале)
+* 100% GPL, слободан софтвер
+
+WeeChat почетна страница се налази на адреси: https://weechat.org/
+
+[[prerequisites]]
+=== Потребно је да имате
+
+Да бисте инсталирали програм WeeChat, потребно је да поседујете:
+
+* инсталиран GNU/Linux систем (са алатима компајлера за пакет изворних фајлова), или компатибилни оперативни систем
+* _root_ привилегије (да се програм WeeChat инсталира у системски директоријум)
+* неке библиотеке (погледајте <<dependencies,зависности>>)
+
+[[install]]
+== Инсталација
+
+[[binary_packages]]
+=== Бинарни пакети
+
+Бинарни пакети су доступни за многе дистрибуције, укључујући:
+
+* Arch Linux: `pacman -S weechat`
+* Cygwin (Windows): изаберите WeeChat пакете у setup.exe
+* Debian/Ubuntu (или било која Debian компатибилна дистрибуција): `apt-get install weechat-curses weechat-plugins` + За најновије верзије и ноћне изградње: https://weechat.org/download/debian
+* Fedora Core: `dnf install weechat`
+* Gentoo: `emerge weechat`
+* Mandriva/RedHat (или било која RPM компатибилна дистрибуција): `rpm -i /путања//до/weechat-x.y.z-1.i386.rpm`
+* openSUSE: `zypper in weechat`
+* Sourcemage: `cast weechat`
+
+Још неки пакети вам могу бити од користи, као што је weechat-plugins.
+
+За остале дистрибуције, молимо вас да погледајте своје упутство у вези начина за инсталирање.
+
+[[source_package]]
+=== Пакет са изворним кодом
+
+Програм WeeChat може да се компајлира са CMake или са autotools (CMake је препоручени начин).
+
+[NOTE]
+На macOS можете да употребите https://brew.sh/[Homebrew]: `brew install weechat` (за помоћ: `brew info weechat`).
+
+[[dependencies]]
+==== Зависности
+
+Следећа табела приказује листу пакета који су *неопходни* за успешно компајлирање програма WeeChat:
+
+[width="100%", cols="5,^3,.^15", options="header"]
+|===
+| Пакет ^(1)^ | Верзија | Служи за
+| C компајлер
+ (gcc, clang, ...) | | Изградњу.
+| cmake | ≥ 3.0 | Изградњу (може да се користи и autotools, али се препоручује CMake).
+| pkg-config | | Детекција инсталираних библиотека.
+| libncursesw5-dev ^(2)^ | | Ncurses интерфејс.
+| libcurl4-gnutls-dev | | URL пренос.
+| zlib1g-dev | | Компресија пакета у релеј додатку (weechat протокол), скрипт додатку.
+| libgcrypt20-dev | | Обезбеђени подаци, IRC SASL аутентификација.
+| libgnutls28-dev | ≥ 2.2.0 ^(3)^ | SSL веза са IRC сервером, подршка за SSL у релеј додатку, IRC SASL аутентификација (ECDSA-NIST256P-CHALLENGE).
+|===
+
+[NOTE]
+^(1)^ Име долази из Debian GNU/Linux дистрибуције, верзије и имена пакета могу да се разликују у различитим дистрибуцијама и верзијама. + ^(2)^ Препоручује се компајлирање са libncurses**w**5-dev (битно је *w*). Програм WeeChat може да се компајлира са libncurses5-dev, али се то *НЕ* препоручује: можете имати багове код приказа широких карактера. + ^(3)^ GnuTLS ≥ 3.0.21 је неопходан за IRC SASL аутентификацију механизмом ECDSA-NIST256P-CHALLENGE.
+
+Следећа табела приказује листу пакета који нису обавезни за компајлирање програма WeeChat:
+
+[width="100%", cols="5,^3,.^15", options="header"]
+|===
+| Пакет | Верзија | Служи за
+| C++ компајлер | | Изградњу и покретање тестова, JavaScript додатак.
+| gettext | | Интернационализацију (превод порука; основни језик је енглески).
+| ca-certificates | | Сертификате за SSL везе.
+| libaspell-dev
+ ∥ libenchant-dev | | Spell додатак.
+| python3-dev ^(1)^ | | Python додатак.
+| libperl-dev | | Perl додатак.
+| ruby2.5, ruby2.5-dev | ≥ 1.9.1 | Ruby додатак.
+| liblua5.3-dev | | Lua додатак.
+| tcl-dev | ≥ 8.5 | Tcl додатак.
+| guile-2.0-dev | ≥ 2.0 | Guile (scheme) додатак.
+| libv8-dev | ≤ 3.24.3 | JavaScript додатак.
+| php-dev, libphp-embed | ≥ 7.0 | PHP додатак.
+| libxml2-dev | | PHP додатак.
+| libargon2-0-dev | | PHP додатак (ако је PHP ≥ 7.2).
+| libsodium-dev | | PHP додатак (ако је PHP ≥ 7.2).
+| asciidoctor | ≥ 1.5.4 | Изградњу man странице и документације.
+| libcpputest-dev | ≥ 3.4 | Изградњу и покретање тестова.
+|===
+
+[NOTE]
+^(1)^ Подразумевано се користи Python 3.x. Ако укључите опцију `+ENABLE_PYTHON2+` (погледајте испод), препоручује се само верзија 2.7 језика Python.
+
+Ако користите дистрибуцију базирану на Debian/Ubuntu и ако имате неке „deb-src” изворне ставке у фајлу _/etc/apt/sources.list_, можете инсталирати све зависности командом:
+
+----
+# apt-get build-dep weechat
+----
+
+[[compile_with_cmake]]
+==== Компајлирање са CMake
+
+* Инсталација у системске директоријуме (неопходне су _root_ привилегије):
+
+----
+$ mkdir build
+$ cd build
+$ cmake ..
+$ make
+$ sudo make install
+----
+
+* Инсталација у директоријум по жељи (на пример, у ваш почетни):
+
+----
+$ mkdir build
+$ cd build
+$ cmake .. -DCMAKE_INSTALL_PREFIX=/путања/до/директоријума
+$ make
+$ make install
+----
+
+Можете да користите опције за CMake, у формату: „-DОПЦИЈА=ВРЕДНОСТ”.
+
+Листа често коришћених опција:
+
+[width="100%", cols="2m,2,5m,12", options="header"]
+|===
+| Опција | Вредности | Подразумевана вредност | Опис
+
+| CMAKE_BUILD_TYPE | `Debug`, `Release`, `RelWithDebInfo`, `MinSizeRel` | |
+ Тип изградње: `Debug` (или `RelWithDebInfo`) се препоручује ако покрећете
+ развојну верзију програма WeeChat.
+
+| CMAKE_INSTALL_PREFIX | директоријум | /usr/local |
+ Директоријум у који ће се инсталирати програм WeeChat.
+
+| WEECHAT_HOME | директоријум | (празан стринг) |
+ Подразумевани почетни директоријум када се извршава програм WeeChat. +
+ Са празном вредности (подразумевано), подразумевано се користе XDG директоријуми.
+ Ако није празна, за све фајлове се користи један директоријум.
+ Вредност такође може да буде и 4 директоријума раздвојена са две тачке, у следећем редоследу:
+ config, data, cache, runtime.
+
+| ENABLE_ALIAS | `ON`, `OFF` | ON |
+ Компајлира <<alias_plugin,Alias додатак>>.
+
+| ENABLE_BUFLIST | `ON`, `OFF` | ON |
+ Компајлира <<buflist_plugin,Buflist додатак>>.
+
+| ENABLE_CHARSET | `ON`, `OFF` | ON |
+ Компајлира <<charset_plugin,Charset додатак>>.
+
+| ENABLE_MAN | `ON`, `OFF` | OFF |
+ Изграђује man страницу.
+
+| ENABLE_DOC | `ON`, `OFF` | OFF |
+ Изграђује HTML документацију.
+
+| ENABLE_ENCHANT | `ON`, `OFF` | OFF |
+ Компајлира <<spell_plugin,Spell додатак>> са Enchant.
+
+| ENABLE_EXEC | `ON`, `OFF` | ON |
+ Компајлира <<exec_plugin,Exec додатак>>.
+
+| ENABLE_FIFO | `ON`, `OFF` | ON |
+ Компајлира <<fifo_plugin,Fifo додатак>>.
+
+| ENABLE_FSET | `ON`, `OFF` | ON |
+ Компајлира <<fset_plugin,Fset додатак>>.
+
+| ENABLE_GUILE | `ON`, `OFF` | ON |
+ Компајлира <<scripts_plugins,Guile додатак>> (Scheme).
+
+| ENABLE_IRC | `ON`, `OFF` | ON |
+ Компајлира <<irc_plugin,IRC додатак>>.
+
+| ENABLE_JAVASCRIPT | `ON`, `OFF` | OFF |
+ Компајлира <<scripts_plugins,JavaScript додатак>>.
+
+| ENABLE_LARGEFILE | `ON`, `OFF` | ON |
+ Подршка за велике фајлове.
+
+| ENABLE_LOGGER | `ON`, `OFF` | ON |
+ Компајлира <<logger_plugin,Logger додатак>>.
+
+| ENABLE_LUA | `ON`, `OFF` | ON |
+ Компајлира <<scripts_plugins,Lua додатак>>.
+
+| ENABLE_NCURSES | `ON`, `OFF` | ON |
+ Компајлира Ncurses интерфејс.
+
+| ENABLE_NLS | `ON`, `OFF` | ON |
+ Укључује NLS (преводе).
+
+| ENABLE_PERL | `ON`, `OFF` | ON |
+ Компајлира <<scripts_plugins,Perl додатак>>.
+
+| ENABLE_PHP | `ON`, `OFF` | ON |
+ Компајлира <<scripts_plugins,PHP додатак>>.
+
+| ENABLE_PYTHON | `ON`, `OFF` | ON |
+ Компајлира <<scripts_plugins,Python додатак>>.
+
+| ENABLE_PYTHON2 | `ON`, `OFF` | OFF |
+ Компајлира <<scripts_plugins,Python додатак>> користећи Python 2 уместо Python 3.
+
+| ENABLE_RELAY | `ON`, `OFF` | ON |
+ Компајлира <<relay_plugin,Relay додатак>>.
+
+| ENABLE_RUBY | `ON`, `OFF` | ON |
+ Компајлира <<scripts_plugins,Ruby додатак>>.
+
+| ENABLE_SCRIPT | `ON`, `OFF` | ON |
+ Компајлира <<scripts_plugins,Script додатак>>.
+
+| ENABLE_SCRIPTS | `ON`, `OFF` | ON |
+ Компајлира <<scripts_plugins,script додатке>> (Python, Perl, Ruby, Lua, Tcl,
+ Guile, JavaScript, PHP).
+
+| ENABLE_SPELL | `ON`, `OFF` | ON |
+ Компајлира <<spell_plugin,Spell додатак>>.
+
+| ENABLE_TCL | `ON`, `OFF` | ON |
+ Компајлира <<scripts_plugins,Tcl додатак>>.
+
+| ENABLE_TRIGGER | `ON`, `OFF` | ON |
+ Компајлира <<trigger_plugin,Trigger додатак>>.
+
+| ENABLE_XFER | `ON`, `OFF` | ON |
+ Компајлира <<xfer_plugin,Xfer додатак>>.
+
+| ENABLE_TESTS | `ON`, `OFF` | OFF |
+ Компајлира тестове.
+
+| ENABLE_CODE_COVERAGE | `ON`, `OFF` | OFF |
+ Компајлира са опцијама за покривеност кода. +
+ Ова опција би требало да се се користи само за тестирање, да се измери покривеност теста.
+|===
+
+Остале команде могу да се прикажу следећом командом:
+
+----
+$ cmake -LA
+----
+
+или са Curses интерфејсом:
+
+----
+$ ccmake ..
+----
+
+[[compile_with_autotools]]
+==== Компајлирање са autotools
+
+[WARNING]
+За изградњу програма WeeChat званично се подржава само CMake. Требало би користите autotools само ако ни сте у могућности да користите CMake. + Изградња са autotools захтева више зависности и спорија је у односу на изградњу са CMake.
+
+* Инсталација у системске директоријуме (неопходне су _root_ привилегије):
+
+----
+$ ./autogen.sh
+$ mkdir build
+$ cd build
+$ ../configure
+$ make
+$ sudo make install
+----
+
+* Инсталација у директоријум по жељи (на пример, у ваш почетни):
+
+----
+$ ./autogen.sh
+$ mkdir build
+$ cd build
+$ ../configure --prefix=/путања/до/директоријума
+$ make
+$ make install
+----
+
+За скрипту _configure_ могу да се користе опције које се приказују следећом командом:
+
+----
+$ ./configure --help
+----
+
+[[run_tests]]
+==== Покретање тестова
+
+За компајлирање тестова су *неопходни* следећи пакети:
+
+* libcpputest-dev
+* C++ компајлер
+
+Када се компајлира програм WeeChat (са CMake), тестови морају да се укључе:
+
+----
+$ cmake .. -DENABLE_TESTS=ON
+----
+
+Након компајлирања могу да се покрену из директоријума у који је изграђен програм (са CMake):
+
+----
+$ ctest -V
+----
+
+[[git_sources]]
+=== Git извори
+
+Упозорење: git извори су за напредне кориснике: можда се неће компајлирати или програм неће бити стабилан. Упозорили смо вас!
+
+Да бисте преузели git изворе, извршите следећу команду:
+
+----
+$ git clone https://github.com/weechat/weechat.git
+----
+
+Затим следите инструкције за <<source_package,пакет са изворима>>).
+
+[[report_crashes]]
+=== Извештавање о рушењу програма
+
+Ако вам се програм руши, или ако желите да известите о евентуалном будућем краху програма WeeChat, потребно је да:
+
+* Програм компајлирате са:
+** дибаг инфо (или да инсталирате бинарни пакет са дибаг инфо),
+** чистач адресе (није обавезан).
+* Укључите _core_ фајлове на свом систему.
+* Инсталирате gdb.
+
+[[build_debug]]
+==== Изградња са дибаг опцијама
+
+Ако компајлирате са CMake:
+
+----
+$ cmake .. -DCMAKE_BUILD_TYPE=Debug
+----
+
+[[build_debug_address_sanitizer]]
+==== Изградња са дибаг опцијама и чистачем адресе
+
+Можете и да укључите чистач адресе, помоћу кога се програм WeeChat тренутно руши чим дође до неког проблема:
+
+----
+$ cmake .. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_C_FLAGS=-fsanitize=address -DCMAKE_CXX_FLAGS=-fsanitize=address -DCMAKE_EXE_LINKER_FLAGS=-fsanitize=address
+----
+
+[WARNING]
+Чистач адресе би требало да укључите само ако покушавате да откријете узрок краха, то се не препоручује за програм који се нормално користи.
+
+Затим када се компајлира и инсталира, програм WeeChat морате покренути на следећи начин:
+
+----
+$ ASAN_OPTIONS="detect_odr_violation=0 log_path=asan.log" weechat
+----
+
+У случају краха, дневник се налази у фајлу `asan.log`.
+
+[[core_files]]
+==== Core фајлови
+
+Да бисте укључили _core_ фајлове, употребите опцију <<option_weechat.startup.sys_rlimit,weechat.startup.sys_rlimit>>:
+
+----
+/set weechat.startup.sys_rlimit "core:-1"
+----
+
+У верзијама програма WeeChat ≤ 0.3.8, или ако желите да укључите core фајлове и пре него што се програм WeeChat покрене, употребите команду `ulimit`.
+
+На пример, на Linux систему са _bash_ командним окружењем, додајте следећу линију у свој `~/.bashrc`:
+
+----
+ulimit -c unlimited
+----
+
+Или поставите макс величину:
+
+----
+ulimit -c 200000
+----
+
+[[gdb_backtrace]]
+==== Добијање дневника са gdb
+
+Када се програм WeeChat сруши, ваш систем ће креирате _core_ фајл или _core.12345_ (_12345_ је id процеса) ако је <<core_files,опција укључена>>. Овај фајл се креира у директоријуму из којег сте покренули програм WeeChat (то *није* директоријум у који је програм WeeChat инсталиран!).
+
+[NOTE]
+На неким системима као што је Archlinux, core извештаји могу бити у неком другом директоријуму као што је _/var/lib/systemd/coredump_ и морате да употребите команду `coredumpctl` да их прочитате. + За више информација, погледајте следећу ики страницу: https://wiki.archlinux.org/index.php/Core_dump
+
+На пример, ако је _weechat_ инсталиран у _/usr/bin/_ а _core_ фајл се налази у _/home/user/_, онда покрените gdb следећом командом:
+
+----
+gdb /usr/bin/weechat /home/user/core
+----
+
+Затим у gdb, употребите команду `bt full` којом се приказује дневник. Видећете нешто слично овоме:
+
+----
+(gdb) set logging file /tmp/crash.txt
+(gdb) set logging on
+Copying output to /tmp/crash.txt.
+(gdb) bt full
+#0 0x00007f9dfb04a465 in raise () from /lib/libc.so.6
+#1 0x00007f9dfb04b8e6 in abort () from /lib/libc.so.6
+#2 0x0000000000437f66 in weechat_shutdown (return_code=1, crash=1)
+ at /some_path/src/core/weechat.c:351
+#3 <signal handler called>
+#4 0x000000000044cb24 in hook_process_timer_cb (arg_hook_process=0x254eb90,
+ remaining_calls=<value optimized out>) at /some_path/src/core/wee-hook.c:1364
+ hook_process = 0x254eb90
+ status = <value optimized out>
+#5 0x000000000044cc7d in hook_timer_exec ()
+ at /some_path/src/core/wee-hook.c:1025
+ tv_time = {tv_sec = 1272693881, tv_usec = 212665}
+ ptr_hook = 0x2811f40
+ next_hook = 0x0
+#6 0x000000000041b5b0 in gui_main_loop ()
+ at /some_path/src/gui/curses/gui-curses-main.c:319
+ hook_fd_keyboard = 0x173b600
+ tv_timeout = {tv_sec = 0, tv_usec = 0}
+ read_fds = {fds_bits = {0 <repeats 16 times>}}
+ write_fds = {fds_bits = {0 <repeats 16 times>}}
+ except_fds = {fds_bits = {0 <repeats 16 times>}}
+ max_fd = <value optimized out>
+----
+
+Овај дневник морате пријавити програмерима, и навести која акција је изазвала овај крах.
+
+Хвала вам на помоћи!
+
+[[debug_running_weechat]]
+==== Дибаг програма WeeChat који се извршава
+
+Ако желите да вршите дибаг програма WeeChat који се извршава (на пример, ако изгледа да је програм WeeChat блокиран), можете употребите gdb са id процеса (замените _12345_ са PID weechat процеса):
+
+----
+gdb /usr/bin/weechat 12345
+----
+
+Затим, као и у случају краха, употребите команду `bt full`:
+
+----
+(gdb) bt full
+----
+
+[[upgrade]]
+=== Ажурирање
+
+Ако се објави нова стабилна верзија програма WeeChat, онда је време да пређете на ту верзију.
+
+Најпре морате инсталирати нову верзију програма WeeChat, или менаџером пакета, или тако што ћете га сами компајлирати, тако да су `weechat` бинарни фајл и све потребни фајлови на истим путањама. + Ово може да се уради и док се програм WeeChat извршава.
+
+[[upgrade_command]]
+==== Команда upgrade
+
+Програм WeeChat у месту може да поново покрене нови бинарни фајл, употребом команде <<command_weechat_upgrade,/upgrade>>: садржаји бафера и не-SSL везе се задржавају. + SSL везе се раскидају током ажурирања и аутоматски се поново успостављају након завршетка процеса ажурирања (тренутно са GnuTLS није могуће поновно учитавање SSL сесија).
+
+Команда такође може да се употреби и када морате поново да покренете машину, на пример, да бисте ажурирали кернел или да преместите свој WeeChat на другу машину:
+
+----
+/upgrade -quit
+----
+
+Ово чува тренутно стање у `*.upgrade` фајлове. Након тога можете или да поново покренете машину, или да комплетне WeeChat директоријуме (config, data, cache) преместите на неку другу машину и касније покренете програм WeeChat следећом командом:
+
+----
+$ weechat --upgrade
+----
+
+[[restart_after_upgrade]]
+==== Поновно покретање након ажурирања
+
+[[restart_release_notes]]
+===== Напомене о издању
+
+Након ажурирања, *снажно се препоручује* да прочитате https://weechat.org/files/releasenotes/ReleaseNotes-devel.html[напомене о издању] које садржи важне информације о променама које прекидају раније понашање програма, као и ручне акције које су због тога можда неопходне.
+
+Морате прочитати све напомене о издању издате између ваше старе (без ње) и ваше нове верзије (укључујући и њу). + На пример, ако пређете са верзије 3.0 на 3.2, морате да прочитате напомене о издању за верзије 3.1 и 3.2.
+
+[[restart_configuration_upgrade]]
+===== Ажурирање конфигурације
+
+Програм WeeChat врши аутоматско ажурирање конфигурационих фајлова (`*.conf`):
+
+* нове опције се без најаве додају са својим подразумеваним вредностима
+* застареле опције се аутоматски одбацују и програм WeeChat приказује упозорење које садржи вредност прочитану из фајла.
+
+Пример упозорења када се опција уклања:
+
+----
+=!= Упозорење: /home/user/.config/weechat/sec.conf, линија 15: непозната опција за одељак "crypt": passphrase_file = ""
+----
+
+Ово значи да је опција `sec.crypt.passphrase_file` уклоњена и да је њена вредност била постављена на празан стринг, што је и подразумевана вредност у претходној верзији (у овом случају нема потребе за ручном акцијом).
+
+[[usage]]
+== Употреба
+
+[[running_weechat]]
+=== Покретање програма WeeChat
+
+Ако желите да покренете програм WeeChat, задајте следећу команду:
+
+----
+$ weechat
+----
+
+Када по први пут покренете програм WeeChat, у директоријуму _~/.config/weechat_ се креирају подразумевани конфигурациони фајлови са подразумеваним опцијама и вредностима (погледајте <<files_and_directories,Фајлови и директоријуми>>).
+
+[[command_line_options]]
+==== Опције командне линије
+
+include::includes/cmdline_options.sr.adoc[tag=standard]
+
+[[extra_debug_options]]
+==== Додатне дибаг опције
+
+[WARNING]
+Ове опције служе само за дибаг, *НЕ КОРИСТИТЕ ИХ ЗА ПРОГРАМ КОЈИ СЕ НОРМАЛНО КОРИСТИ!*
+
+include::includes/cmdline_options.sr.adoc[tag=debug]
+
+[[environment_variables]]
+=== Променљиве окружења
+
+У случају да су дефинисане, програм WeeChat користи неке променљиве окружења:
+
+[width="100%", cols="1m,6", options="header"]
+|===
+| Име | Опис
+| WEECHAT_HOME | WeeChat почетни директоријум (са конфигурационим фајловима, логовима, скриптама, итд.). Исто понашање као <<compile_with_cmake,CMake опција>> `WEECHAT_HOME`.
+| WEECHAT_PASSPHRASE | Тајна реченица која се користи за дешифровање обезбеђених података.
+| WEECHAT_EXTRA_LIBDIR | Додатни директоријум из кога се учитавају додаци (из „plugins” директоријума на овој путањи).
+|===
+
+[[files_and_directories]]
+=== Фајлови и директоријуми
+
+[[xdg_directories]]
+==== XDG директоријуми
+
+WeeChat подразумевано користи XDG директоријуме (сагласно са https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html[XDG Base Directory Specification]). + Један почетни директоријум за све фајлове може да се форсира CMake опцијом `WEECHAT_HOME`, променљивом окружења `WEECHAT_HOME` или опцијом командне линије `-d` / `--dir`.
+
+Када се не форсира један WeeChat почетни директоријум, користе се XDG директоријуми и постављају се овако:
+
+[width="100%", cols="1,2m,5", options="header"]
+|===
+| Директоријум | Подразумевана вредност | Вредност у случају потребе
+| config | $XDG_CONFIG_HOME/weechat | `$HOME/.config/weechat` ако `$XDG_CONFIG_HOME` није дефинисана или је празна.
+| data | $XDG_DATA_HOME/weechat | `$HOME/.local/share/weechat` ако `$XDG_DATA_HOME` није дефинисана или је празна.
+| cache | $XDG_CACHE_HOME/weechat | `$HOME/.cache/weechat` ако `$XDG_CACHE_HOME` није дефинисана или је празна.
+| runtime | $XDG_RUNTIME_DIR/weechat | Исто као _cache_ директоријум ако `$XDG_RUNTIME_DIR` није дефинисана или је празна.
+|===
+
+Конфигурациони фајлови фајлови се креирају са подразумеваним вредностима онда када по први пут покренете програм WeeChat.
+
+[[weechat_directories]]
+==== WeeChat директоријуми
+
+Ово су директоријуми програма WeeChat:
+
+[width="100%", cols="1m,3", options="header"]
+|===
+| Путања ^(1)^ | Опис
+| ~/.config/weechat/ | WeeChat конфигурациони фајлови: `*.conf`, сертификати, итд.
+| ~/.local/share/weechat/ | WeeChat фајлови података: логови, скрипте, подаци скрипти, xfer фајлови, итд.
+|    logs/ | Лог фајлови (по један за сваки бафер).
+|    python/ | Python скрипте.
+|       autoload/ | Python скрипте које аутоматски учитавају при покретању ^(2)^.
+|    perl/ | Perl скрипте.
+|       autoload/ | Perl скрипте које се аутоматски учитавају при покретању ^(2)^.
+|    ruby/ | Ruby скрипте.
+|       autoload/ | Ruby скрипте које се аутоматски учитавају при покретању ^(2)^.
+|    lua/ | Lua скрипте.
+|       autoload/ | Lua скрипте које се аутоматски учитавају при покретању ^(2)^.
+|    tcl/ | Tcl скрипте.
+|       autoload/ | Tcl скрипте које се аутоматски учитавају при покретању ^(2)^.
+|    guile/ | Guile скрипте.
+|       autoload/ | Guile скрипте које се аутоматски учитавају при покретању ^(2)^.
+|    javascript/ | JavaScript скрипте.
+|       autoload/ | JavaScript скрипте које се аутоматски учитавају при покретању ^(2)^.
+|    php/ | PHP скрипте.
+|       autoload/ | PHP скрипте које се аутоматски учитавају при покретању ^(2)^.
+| ~/.cache/weechat/ | WeeChat кеш фајлови: кеш скрипти.
+| /run/user/1000/weechat/ | WeeChat фајлови за време извршавања: FIFO пајп, Relay UNIX сокети.
+|===
+
+[NOTE]
+^(1)^ XDG директоријуми могу да буду различити зависно од ваших вредности променљивих окружења `XDG_*`. + ^(2)^ Овај директоријум најчешће садржи само симболички линк на скрипте у родитељском директоријуму.
+
+[[weechat_files]]
+==== WeeChat фајлови
+
+Ово су фајлови који се налазе у почетном директоријуму програма WeeChat:
+
+[width="100%", cols="1m,3,6", options="header"]
+|===
+| Фајл | Опис | Осетљиви подаци
+| weechat.conf | Главни WeeChat конфигурациони фајл | Могуће (пример: листа канала у сачуваном распореду бафера).
+| sec.conf | Конфигурациони фајл са обезбеђеним подацима | *Да, врло осетљиви*: овај фајл никада не сме да се дели са било ким.
+| plugins.conf | Конфигурациони фајл додатака | Могуће, зависно од додатака/скрипти.
+| alias.conf | Конфигурациони фајл за _алијас_ додатак | Могуће, зависно од алијаса.
+| buflist.conf | Конфигурациони фајл за _buflist_ додатак | Не.
+| charset.conf | Конфигурациони фајл за _charset_ додатак | Не.
+| exec.conf | Конфигурациони фајл за _exec_ додатак | Не.
+| fifo.conf | Конфигурациони фајл за _fifo_ додатак | Не.
+| fset.conf | Конфигурациони фајл за _fset_ додатак | Не.
+| guile.conf | Конфигурациони фајл за _guile_ додатак | Не.
+| irc.conf | Конфигурациони фајл за _irc_ додатак | *Да*: може да садржи лозинке за сервере, nickserv и канале (ако се не чувају у `sec.conf`).
+| javascript.conf | Конфигурациони фајл за _javascript_ додатак | Не.
+| logger.conf | Конфигурациони фајл за _logger_ додатак | Не.
+| lua.conf | Конфигурациони фајл за _lua_ додатак | Не.
+| perl.conf | Конфигурациони фајл за _perl_ додатак | Не.
+| php.conf | Конфигурациони фајл за _php_ додатак | Не.
+| python.conf | Конфигурациони фајл за _python_ додатак | Не.
+| relay.conf | Конфигурациони фајл за _релеј_ додатак | *Да*: може да садржи лозинку за релеј и TOTP тајну (ако се не чувају у `sec.conf`), дозвољене IP адресе/вебсокет порекла и отворене портове.
+| ruby.conf | Конфигурациони фајл за _ruby_ додатак | Не.
+| script.conf | Конфигурациони фајл за _script_ додатак | Не.
+| tcl.conf | Конфигурациони фајл за _tcl_ додатак | Не.
+| spell.conf | Конфигурациони фајл за _spell_ додатак | Не.
+| trigger.conf | Конфигурациони фајл за _окидач_ додатак | Могуће, зависно од окидача.
+| xfer.conf | Конфигурациони фајл за _xfer_ додатак | Не.
+| weechat.log | WeeChat лог фајл | Не.
+|===
+
+[IMPORTANT]
+*Не препоручује се* ручно уређивање конфигурационих фајлова јер програм WeeChat може да их упише у било које време (на пример приликом команде <<command_weechat_quit,/quit>>) и јер након сваке измене морате да извршите команду <<command_weechat_reload,/reload>> (уз ризик губитка осталих измена које још увек нисте сачували командом <<command_weechat_save,/save>>). + Можете да употребљавате команду <<command_weechat_set,/set>>, која врши проверу вредности и тренутно примењује измене.
+
+[[screen_layout]]
+=== Распоред екрана
+
+Пример терминала са програмом WeeChat:
+
+....
+ ▼ трака „buflist” ▼ трака „title”
+┌─────────────────────────────────────────────────────────────────────────────────────────┐
+│1.libera │Добро дошли на #test, ово је тест канал │
+│ weechat│12:52:27 --> | Flashy (flashcode@weechat.org) је приступио у #test │@Flashy│
+│2. #test│12:52:27 -- | Надимци #test: [@Flashy @joe +weebot peter] │@joe │
+│3. #abc │12:52:27 -- | Канал #test: 4 надимка (2 опа, 1 глас, 1 обичан) │+weebot│
+│4. #def │12:52:27 -- | Канал је креиран у Уто Јан 27 06:30:17 2009 │peter │
+│5. #ghi │12:54:15 peter | hey! │ │
+│ │12:55:01 @joe | hello │ │
+│ │ │ │
+│ │ │ │
+│ │ │ │
+│ │ │ │
+│ │ │ │
+│ │ │ │
+│ │ │ │
+│ │ │ │
+│ │ │ │
+│ │ │ │
+│ │ │ │
+│ │ │ │
+│ │ │ │
+│ │ │ │
+│ │[12:55] [5] [irc/libera] 2:#test(+n){4}* [H: 3:#abc(2,5), 5] │
+│ │[@Flashy(i)] hi peter!█ │
+└─────────────────────────────────────────────────────────────────────────────────────────┘
+ ▲ траке „status” и „input” трака „nicklist” ▲
+....
+
+Екран је подељен на следеће области
+
+* простор за разговор (чет) (средина екрана) са линијама разговора и за сваку линију:
+** време
+** префикс (испред „|”)
+** порука (након „|”)
+* траке око простора за разговор, подразумеване траке су:
+** _buflist_ трака, са леве стране
+** _title_ (насловна) трака, изнад простора за разговор
+** _status_ (статусна) трака, испод простора за разговор
+** _input_ (унос) трака, испод статусне траке
+** _nicklist_ (листа надимака) трака, са десне стране
+
+_buflist_ трака садржи следеће подразумеване ставке:
+
+[width="100%", cols="^3,^3,9", options="header"]
+|===
+| Ставка | Пример | Опис
+| buflist | `1.weechat` | Листа бафера.
+|===
+
+_title_ трака садржи следеће подразумеване ставке:
+
+[width="100%", cols="^3,^3,9", options="header"]
+|===
+| Ставка | Пример | Опис
+| buffer_title | `Добродошли у #test` | Наслов бафера.
+|===
+
+_status_ трака садржи следеће подразумеване ставке:
+
+[width="100%", cols="^3,^3,9", options="header"]
+|===
+| Ставка | Пример | Опис
+| time | `[12:55]` | Време.
+| buffer_last_number | `[5]` | Број последњег бафера у листи.
+| buffer_plugin | `[irc/libera]` | Додатак текућег бафера (irc додатак може да дода име IRC сервера који бафер користи).
+| buffer_number | `2` | Број текућег бафера.
+| buffer_name | `#test` | Име текућег бафера.
+| buffer_modes | `+n` | Режими IRC канала.
+| buffer_nicklist_count | `{4}` | Број надимака у листи надимака.
+| buffer_zoom | ! | `!` значи да је спојени бафер зумиран (само он се приказује), празна вредност значи да се приказују сви спојени бафери.
+| buffer_filter | `+*+` | Индикатор филтрирања: `+*+` значи да су неке линије филтриране (скривене), празна вредност значи да се приказују све линије.
+| scroll | `-ЈОШ(50)-` | Скрол индикатор, са бројем линија испод последње приказане линије.
+| lag | `[Кашњење: 2.5]` | Индикатор кашњења, у секундама (скривен је ако је кашњење мало).
+| hotlist | `[H: 3:#abc(2,5), 5]` | Листа бафера који имају активност (непрочитане поруке) (у примеру, 2 истицања и 5 непрочитаних порука на _#abc_, једна непрочитана порука у баферу #5).
+| completion | `abc(2) def(5)` | Листа речи за довршавање, са бројем могућих довршавања за сваку реч.
+|===
+
+_input_ трака садржи следеће подразумеване ставке:
+
+[width="100%", cols="^3,^3,9", options="header"]
+|===
+| Ставка | Пример | Опис
+| input_prompt | `[@Flashy(i)]` | Одзив за унос, за irc: надимак и режими (режим „+i” значи невидљив на серверу libera).
+| away | `(одсутан)` | Индикатор одсутности.
+| input_search | `[Претрага (~ str,msg)]` | Индикатор претраге („`~`”: не прави се разлика у величини слова, „`==`”: прави се разлика у величини слова, „`str`”: стринг претраге, „`regex`”: претрага по регуларном изразу, „`msg`”: претрага у порукама, „`pre`”: претрага у префиксима, „`pre\|msg`”: претрага и у префиксима и у порукама).
+| input_paste | `[Да налепим 7 линија? [ctrl-Y] Да [ctrl-N] Не]` | Питање за корисника пре налељпивања линија.
+| input_text | `hi peter!` | Текст уноса.
+|===
+
+_nicklist_ трака садржи следеће подразумеване ставке:
+
+[width="100%", cols="^3,^3,9", options="header"]
+|===
+| Ставка | Пример | Опис
+| buffer_nicklist | `@Flashy` | Листа надимака на текућем баферу.
+|===
+
+Остале доступне ставке (подразумевано се не користе у тракама):
+
+[width="100%", cols="^3,^3,9", options="header"]
+|===
+| Ставка | Пример | Опис
+| buffer_count | `10` | Укупан број отворених бафера.
+| buffer_last_number | `10` | Број најновијег бафера (може да се разликује од `buffer_count` ако је опција <<option_weechat.look.buffer_auto_renumber,weechat.look.buffer_auto_renumber>> `off`).
+| buffer_nicklist_count_all | `4` | Број видљивих група и надимака у листи надимака.
+| buffer_nicklist_count_groups | `0` | Број видљивих група у листи надимака.
+| buffer_short_name | `#test` | Кратко име текућег бафера.
+| buflist2 | `1.weechat` | Листа бафера, друга ставка траке (погледајте опцију <<option_buflist.look.use_items,buflist.look.use_items>>).
+| buflist3 | `1.weechat` | Листа бафера, трећа ставка траке (погледајте опцију <<option_buflist.look.use_items,buflist.look.use_items>>).
+| fset | `+buflist.look.sort: …+` | Помоћ у вези тренутно изабране опције у fset баферу.
+| irc_channel | `#test` | Име тренутног IRC канала.
+| irc_host | `+user@host.com+` | Име тренутног IRC хоста.
+| irc_nick | `+Flashy+` | Тренутни IRC надимак.
+| irc_nick_host | `+Flashy!user@host.com+` | Тренутни IRC надимак и име хоста.
+| irc_nick_modes | `i` | IRC режими са ваш надимак.
+| irc_nick_prefix | `@` | IRC префикс надимка на каналу.
+| mouse_status | `M` | Статус миша (празно ако је миш искључен).
+| spell_dict | `fr,en` | Речници за проверу правописа који се користе у текућем баферу.
+| spell_suggest | `print,prone,prune` | Правописни предлози за реч под курсором (у случају да је погрешно исписана).
+| tls_version | `TLS1.3` | TLS верзија која се користи за текући IRC сервер.
+| window_number | `2` | Број текућег прозора.
+|===
+
+[[command_line]]
+=== Командна линија
+
+WeeChat командна линија (на дну прозора) вам омогућава извршавање команди или слање текста у бафер.
+
+[[command_line_syntax]]
+==== Синтакса
+
+Команде почињу карактером „/”, након кога следи име команде. На пример, ако желите да видите листу свих опција:
+
+----
+/set
+----
+
+Текст који се шаље у бафер је било који текст који не почиње карактером „/”. На пример, ако у текући бафер желите да пошаљете текст _здраво_:
+
+----
+здраво
+----
+
+Међутим, можете да почнете са карактером „/” ако додате још један. На пример, ако у текући бафер желите да пошаљете текст `/set`:
+
+----
+//set
+----
+
+[[command_line_colors]]
+==== Кодови боја
+
+За неке додатке као што је IRC, можете да користите кодове боја и атрибуте, као што следи (притисните kbd:[Ctrl+c] па слово које следи, са необавезном вредности):
+
+[width="100%", cols="1,2", options="header"]
+|===
+| Тастер | Опис
+| kbd:[Ctrl+c], kbd:[b] | Подебљани текст
+| kbd:[Ctrl+c], kbd:[c],
+ kbd:[xx] | Текст у боји `xx` (погледајте листу боја испод).
+| kbd:[Ctrl+c], kbd:[c],
+ kbd:[xx], kbd:[,],
+ kbd:[yy] | Текст у боји `xx` и позадина у `yy` (погледајте листу боја испод).
+| kbd:[Ctrl+c], kbd:[i] | Текст у курзиву.
+| kbd:[Ctrl+c], kbd:[o] | Искључивање боје и атрибута.
+| kbd:[Ctrl+c], kbd:[v] | Обрнути видео (боје текста и позадине се замењују једна са другом).
+| kbd:[Ctrl+c], kbd:[_] | Подвучени текст.
+|===
+
+[NOTE]
+Исти кôд (без броја за kbd:[Ctrl+c], kbd:[c]) може да се употреби за заустављање атрибута.
+
+Кодови боја за kbd:[Ctrl+c], kbd:[c] су:
+
+include::includes/autogen_user_irc_colors.sr.adoc[tag=irc_colors]
+
+[NOTE]
+Да бисте у свом терминалу видели све доступне боје, можете да у програму WeeChat извршите `/color` па затим kbd:[Alt+c], или да у терминалу покренете следећу команду: `weechat --colors`.
+
+Пример: приказати „здраво Елена!” са „здраво” у светлоплавој боји подебљано и „Елена” у светлоцрвеној боји, подвучено:
+
+----
+^Cc12^Cbздраво ^Cb^Cc04^C_Елена^C_^Cc!
+----
+
+Тастери:
+
+kbd:[Ctrl+c] kbd:[c] kbd:[1] kbd:[2] kbd:[Ctrl+c] kbd:[b] + kbd:[h] kbd:[e] kbd:[l] kbd:[l] kbd:[o] kbd:[Space] + kbd:[Ctrl+c] kbd:[b] kbd:[Ctrl+c] kbd:[c] kbd:[0] kbd:[4] kbd:[Ctrl+c] kbd:[pass:[_]] + kbd:[A] kbd:[l] kbd:[i] kbd:[c] kbd:[e] + kbd:[Ctrl+c] kbd:[pass:[_]] kbd:[Ctrl+c] kbd:[c] + kbd:[!]
+
+[NOTE]
+У irc додатку можете да ремапирате ове боје употребом опције <<option_irc.color.mirc_remap,irc.color.mirc_remap>>.
+
+[[colors]]
+=== Боје
+
+За приказ текста у тракама и простору за чет, програм WeeChat може да користи до 32767 парова боја (ваш терминал мора да подржава 256 боја како могле да се користе у програму WeeChat).
+
+Сагласно са вредности променљиве окружења _TERM_, можете имати следећа ограничења за боје у програму WeeChat:
+
+[width="75%", cols="8,>3,>3", options="header"]
+|===
+| $TERM | Боја | Парова
+| "rxvt-unicode", "xterm", ... | 88 | 32767
+| "rxvt-256color", "xterm-256color", ... | 256 | 32767
+| "screen" | 8 | 64
+| "screen-256color" | 256 | 32767
+| "tmux" | 8 | 64
+| "tmux-256color" | 256 | 32767
+|===
+
+Ако желите да прикажете ограничења за своје окружење, покрените `weechat --colors`, или извршите команду `/color` у програму WeeChat.
+
+Неке од препоручених вредности за _TERM_ ако желите 256 боја:
+
+* под screen: _screen-256color_
+* под tmux: _screen-256color_ или _tmux-256color_
+* ван screen/tmux: _xterm-256color_, _rxvt-256color_, _putty-256color_, ...
+
+[NOTE]
+Можда ће бити потребно да инсталирате пакет „ncurses-term” како бисте могли да у _TERM_ променљивој користите ове вредности.
+
+Ако користите screen, можете да додате следећу линију у свој _~/.screenrc_:
+
+----
+term screen-256color
+----
+
+Ако је вредност ваше _TERM_ променљиве погрешна, а програм WeeChat се већ извршава, можете да је промените помоћу следеће две команде:
+
+----
+/set env TERM screen-256color
+/upgrade
+----
+
+[[colors_basic]]
+==== Основне боје
+
+Основне боје у програму WeeChat су:
+
+[width="75%", cols="1m,4", options="header"]
+|===
+| Име | Боја
+| default | Подразумевана боја терминала (провидна за позадину)
+| black | Црна
+| darkgray | Тамносива
+| red | Тамноцрвена
+| lightred | Светлоцрвена
+| green | Тамнозелена
+| lightgreen | Светлозелена
+| brown | Браон
+| yellow | Жута
+| blue | Тамноплава
+| lightblue | Светлоплава
+| magenta | Тамномагента
+| lightmagenta | Светломагента
+| cyan | Тамноцијан
+| lightcyan | Светлоцијан
+| gray | Сива
+| white | Бела
+|===
+
+[[colors_extended]]
+==== Проширене боје
+
+Програм WeeChat динамички алоцира парове боја када се боје употребе на екрану (за приказ бафера и трака).
+
+Уз основне боје, можете да користите и број боје између 1 и границе вашег терминала.
+
+Употребите команду `/color` да видите текуће боје и ограничења. Са kbd:[Alt+c] можете привремено да се пребаците на боје терминала како бисте изабрали боју.
+
+На пример, ако желите да се време у баферу приказује у наранџастој боји, извршите:
+
+----
+/set weechat.color.chat_time 214
+----
+
+Или ако желите тамну тамнозелену позадину за статусну линију:
+
+----
+/set weechat.bar.status.color_bg 22
+----
+
+[[colors_aliases]]
+==== Алијаси
+
+Алијасе боја можете додати командом `/color alias`, па затим користити тај алијас у било којој опцији за боје.
+
+На пример:
+
+----
+/color alias 214 orange
+/set weechat.color.chat_delimiters orange
+----
+
+[[colors_attributes]]
+==== Атрибути
+
+За боје можете да користите и неке атрибуте. Испред имена или броја боје можете додати један или више атрибута:
+
+* `+*+`: подебљани текст
+* `+!+`: обрнути видео
+* `+/+`: курзив
+* `+_+`: подвучен текст
+* `+|+`: задржавање атрибута: када се мења боја, подебљано/обрнуто/курзив/подвучено се не ресетује
+
+На пример, ако желите да ваш надимак исписује у белој боји, подвучено, извршите:
+
+----
+/set weechat.color.chat_nick_self _white
+----
+
+Или ако желите да се у статусној траци време исписује у наранџастој боји, подебљано:
+
+----
+/set weechat.color.status_time *_214
+----
+
+Ако атрибуте желите да користите са подразумеваном бојом терминала (-1), морате да употребите број већи од последње боје терминала, на пример, максималну боју у програму WeeChat: 99999.
+
+Пример подебљаног текста са бојом предњег плана терминала:
+
+----
+/set weechat.color.status_time *99999
+----
+
+[[buffers_and_windows]]
+=== Бафери и прозори
+
+_бафер_ се састоји из броја, имена, приказаних линија (и још неких података).
+
+Примери бафера:
+
+* бафер језгра (креира га програм WeeChat током покретања, не може да се затвори)
+* irc сервер (приказује поруке од сервера)
+* irc канал
+* irc приватне поруке
+
+_прозор_ је површина екрана која приказује бафер. Свој екран можете да изделите на више прозора.
+
+Сваки прозор приказује један бафер. Бафер може да буде скривен (не приказује се у прозору) или да се приказује у једном или у више прозора.
+
+Пример хоризонталне поделе (`/window splith`):
+
+....
+ ▼ прозор #2 (бафер #4)
+┌─────────────────────────────────────────────────────────────────────────────────────┐
+│1.libera │Welcome to #def │
+│ weechat│12:55:12 Max | hi │@Flashy│
+│2. #test│12:55:20 @Flashy | hi Max! │Max │
+│3. #abc │ │ │
+│4. #def │ │ │
+│5. #ghi │ │ │
+│ │ │ │
+│ │ │ │
+│ │ │ │
+│ │[12:55] [5] [irc/libera] 4:#def(+n){2} │
+│ │[@Flashy] │
+│ │───────────────────────────────────────────────────────────────────────────│
+│ │Welcome to #abc │
+│ │12:54:15 peter | hey! │@Flashy│
+│ │12:55:01 @joe | hello │@joe │
+│ │ │+weebot│
+│ │ │peter │
+│ │ │ │
+│ │ │ │
+│ │ │ │
+│ │ │ │
+│ │[12:55] [5] [irc/libera] 3:#abc(+n){4} │
+│ │[@Flashy] hi peter!█ │
+└─────────────────────────────────────────────────────────────────────────────────────┘
+ ▲ прозор #1 (бафер #3)
+....
+
+Пример вертикалне поделе(`/window splitv`):
+
+....
+┌─────────────────────────────────────────────────────────────────────────────────────┐
+│1.libera │Welcome to #abc │Welcome to #def │
+│ weechat│12:54:15 peter | hey! │@Flashy│12:55:12 Max | hi │@Flashy│
+│2. #test│12:55:01 @joe | hello │@joe │12:55:20 @Flashy | hi Max! │Max │
+│3. #abc │ │+weebot│ │ │
+│4. #def │ │peter │ │ │
+│5. #ghi │ │ │ │ │
+│ │ │ │ │ │
+│ │ │ │ │ │
+│ │ │ │ │ │
+│ │ │ │ │ │
+│ │ │ │ │ │
+│ │ │ │ │ │
+│ │ │ │ │ │
+│ │ │ │ │ │
+│ │ │ │ │ │
+│ │ │ │ │ │
+│ │ │ │ │ │
+│ │ │ │ │ │
+│ │ │ │ │ │
+│ │ │ │ │ │
+│ │[12:55] [5] [irc/libera] 3:#abc(+n) │[12:55] [5] [irc/libera] 4:#def(+n) │
+│ │[@Flashy] hi peter!█ │[@Flashy] │
+└─────────────────────────────────────────────────────────────────────────────────────┘
+ ▲ прозор #1 (бафер #3) ▲ прозор #2 (бафер #4)
+....
+
+Пример вертикалне + хоризонталне поделе:
+
+....
+ ▼ прозор #3 (бафер #5)
+┌─────────────────────────────────────────────────────────────────────────────────────┐
+│1.libera │Welcome to #abc │Welcome to #ghi │
+│ weechat│12:54:15 peter | hey! │@Flashy│12:55:42 @Flashy | hi │@Flashy│
+│2. #test│12:55:01 @joe | hello │@joe │12:55:56 alex | hi Flashy │alex │
+│3. #abc │ │+weebot│ │ │
+│4. #def │ │peter │ │ │
+│5. #ghi │ │ │ │ │
+│ │ │ │ │ │
+│ │ │ │ │ │
+│ │ │ │ │ │
+│ │ │ │[12:55] [5] [irc/libera] 5:#ghi(+n) │
+│ │ │ │[@Flashy] │
+│ │ │ │─────────────────────────────────────│
+│ │ │ │Welcome to #def │
+│ │ │ │12:55:12 Max | hi │@Flashy│
+│ │ │ │12:55:20 @Flashy | hi Max! │Max │
+│ │ │ │ │ │
+│ │ │ │ │ │
+│ │ │ │ │ │
+│ │ │ │ │ │
+│ │ │ │ │ │
+│ │[12:55] [5] [irc/libera] 3:#abc(+n) │[12:55] [5] [irc/libera] 4:#def(+n) │
+│ │[@Flashy] hi peter!█ │[@Flashy] │
+└─────────────────────────────────────────────────────────────────────────────────────┘
+ ▲ прозор #1 (бафер #3) ▲ прозор #2 (бафер #4)
+....
+
+[[buffers]]
+=== Бафери
+
+[[lines_format]]
+==== Формат линија
+
+Линије које се приказују у форматираним баферима имају следећа поља:
+
+[width="100%", cols="2,2,10", options="header"]
+|===
+| Поље | Приказано | Опис
+| date/time (порука) | Да | Датум/време поруке (може бити у прошлости).
+| date/time (испис) | Не | Датум/време када WeeChat испише поруку.
+| prefix | Да | Префикс поруке, обично је надимак.
+| message | Да | Сама порука.
+| displayed | Не | Логичка: истинито ако је линија приказана, неистинито ако је линија филтрирана командом <<command_weechat_filter,/filter>>.
+| highlight | Не | Логичка: истинито ако линија има истицање, у супротном неистинито.
+| tags | Са `/debug tags` | Ознаке придружене линији (погледајте <<lines_tags,ознаке линија>>).
+|===
+
+Приказ линија може да се прилагоди многим опцијама изгледа (_pass:[weechat.look.*]_) и опцијама боја (_pass:[weechat.color.chat_*]_).
+
+[[lines_tags]]
+==== Ознаке линија
+
+Програм WeeChat користи у разне сврхе ознаке у линијама:
+
+* истицање
+* ниво обавештавања
+* логовање
+* употреба команде <<command_weechat_filter,/filter>>
+
+Ознаке могу да се прикажу командом `/debug tags` (иста команда их и сакрива).
+
+Често коришћене ознаке (листа није потпуна):
+
+[width="100%", cols="1m,4", options="header"]
+|===
+| Ознака | Опис
+| no_filter | Линија не може да буде филтрирана.
+| no_highlight | У линији није могуће истицање.
+| no_log | Линија се не уписује у лог фајл.
+| log0 … log9 | Ниво лога за линију (погледајте `/help logger`).
+| notify_none | Линија не сме да се дода у врућу листу. ^(1)^
+| notify_message | Линија је корисничка порука. ^(1)^
+| notify_private | Линија је приватна порука. ^(1)^
+| notify_highlight | Линија је порука са истицањем. ^(1)^
+| self_msg | Порука од вас.
+| nick_xxx | Порука је од надимка „xxx”.
+| prefix_nick_ccc | Префикс је надимак у боји „ccc”.
+| host_xxx | Корисничко име и хост у поруци.
+| irc_xxx | IRC порука „xxx” (може бити команда или троцифрени број).
+| irc_numeric | IRC нумеричка порука.
+| irc_error | Грешка од IRC сервера.
+| irc_action | Акција од надимка (команда `/me`).
+| irc_ctcp | CTCP порука.
+| irc_ctcp_reply | Одговор на CTCP поруку.
+| irc_smart_filter | IRC порука која може да се филтрира „паметним филтером”.
+| away_info | Порука са информацији о одсутности.
+|===
+
+[NOTE]
+^(1)^ Када није присутна ниједна „notify_xxx” ознака, подразумевани ниво је „low”. Ако је присутна ознака „notify_xxx”, стварни ниво обавештавања може бити различит, на пример ако се за надимак користи максимални ниво вруће листе, ниво обавештавања може бити нижи него што је наведен у ознаци.
+
+[[local_variables]]
+==== Локалне променљиве
+
+У свим баферима можете да дефинишете локалне променљиве.
+
+Локална променљива има:
+
+* име (стринг)
+* вредност (стринг, може бити и празан)
+
+Локалне променљиве може да поставља програм WeeChat, додаци, скрипте, или ручно, командном линијом у баферу.
+
+На пример, ако желите да додате локалну променљиву „completion_default_template”:
+
+----
+/buffer setvar completion_default_template %(my_completion)
+----
+
+Ако желите да видите све локалне променљиве у текућем баферу:
+
+----
+/buffer listvar
+----
+
+Ако желите да уклоните локалну променљиву „completion_default_template”:
+
+----
+/buffer delvar completion_default_template
+----
+
+Програм WeeChat и његови додаци подразумевано интерпретирају следеће променљиве:
+
+[width="100%", cols="^2m,2,5", options="header"]
+|===
+| Име | Вредност | Опис
+
+| away |
+ било који стринг |
+ Порука о одсутности на серверу, поставља је irc додатак.
+
+| channel |
+ било који стринг |
+ Име канала, постављају је irc/xfer додаци и дибаг бафер релеј/окидач додатака.
+
+| charset_modifier |
+ било који стринг |
+ Модификатор скупа карактера за серверски бафер, поставља је irc додатак.
+
+| completion_default_template |
+ било који стринг |
+ Подразумевани шаблон за довршавање у баферу, премошћава опцију
+ `weechat.completion.default_template`.
+
+| filter |
+ било који стринг |
+ Филтер дефинисан за неке бафере, као што су `/fset`, `/server raw` (irc) и `/script`.
+
+| host |
+ било који стринг |
+ Име вашег хоста (ако је познато), поставља је irc додатак.
+
+| lag |
+ било који стринг |
+ Кашњење у комуникацији са сервером, поставља је irc додатак.
+
+| name |
+ било који стринг |
+ Име бафера (пазите, ово није пуно име и није довољно за идентификацију
+ или претрагу бафера).
+
+| nick |
+ било који стринг |
+ Ваш надимак, постављају је irc и xfer додаци.
+
+| no_log |
+ `1` (или неки непразни стринг) |
+ Ако је постављена, logger додатак уопште не логује овај бафер.
+
+| plugin |
+ било који стринг |
+ Име додатка који је креирао бафер (`core` за WeeChat бафере).
+
+| script_close_cb |
+ било који стринг |
+ Функција повратног позива за затварање бафера коју је дефинисала скрипта.
+
+| script_close_cb_data |
+ било који стринг |
+ Подаци за функцију повратног позива затварања бафера коју је дефинисала скрипта.
+
+| script_input_cb |
+ било који стринг |
+ Функција повратног позива за унос у бафер коју је дефинисала скрипта.
+
+| script_input_cb_data |
+ било који стринг |
+ Подаци за функцију повратног позива за унос у бафер коју је дефинисала скрипта.
+
+| script_name |
+ било који стринг |
+ Име скрипте која је креирала бафер.
+
+| server |
+ било који стринг |
+ Име сервера, поставља је irc додатак и дибаг бафер релеј/окидач додатака.
+
+| spell_suggest |
+ било који стринг |
+ Неисправно написана реч и предлози (формат: „неисправна:предлози”), поставља
+ је spell додатак.
+
+| trigger_filter |
+ било који стринг |
+ Филтер окидача, поставља је окидач додатак.
+
+| type |
+ било који стринг, на пример:
+ `channel`,
+ `debug`,
+ `exec`,
+ `option`,
+ `private`,
+ `relay`,
+ `script`,
+ `server`,
+ `user`,
+ `xfer` |
+ Тип бафера, поставља је програм WeeChat и многи додаци.
+
+|===
+
+[NOTE]
+Спољни додаци и скрипте могу да дефинишу и користе остале локалне променљиве.
+
+[[bars]]
+=== Траке
+
+_трака_ је површина уз разговор која може да садржи било коју врсту текста.
+
+Опције траке могу да се поставе опцијама `weechat.bar.име.опција` где је `име` име траке, а `опција` опција за ту траку.
+
+Листа опција траке:
+
+[width="100%", cols="2m,2,10", options="header"]
+|===
+| Опција | Вредности | Опис
+
+| type | `root`, `window` |
+ Трака типа `root` се приказује тачно једном на екрану, ван свих прозора.
+ Тип подразумеване траке _buflist_ је `root`. +
+ Трака са типом `window` се приказује у сваком прозору, на пример ако поделите
+ једном екран (са `/window splith` или `/window splitv`), имаћете
+ једну траку у сваком прозору. Подразумеване траке _title_, _status_,
+ _input_ и _nicklist_ су типа `window`.
+
+| position | `top`, `bottom`, `left`, `right` |
+ Позиција траке: изнад/испод разговора, са леве/десне стране.
+
+| priority | цео број ≥ 0 |
+ Приоритет за приказ траке: ово се користи за ређање трака на екрану када
+ више трака имају исти тип и исту позицију. +
+ Траке се приказују од ивице екрана према центру. Виши приоритет значи да
+ ће се трака приказивати на почетку, дакле, ближе ивици. +
+ Пример: _input_ трака има приоритет 1000, тако да се приказује испред _status_
+ траке, која има приоритет 500.
+
+| size | цео број ≥ 0 |
+ Величина траке: број колона за позицију left/right, број линија за
+ позицију top/bottom. Величина `0` значи аутоматски, тако да ће се
+ величина израчунати у зависности од садржаја који се приказује у траци.
+
+| size_max | цео број ≥ 0 |
+ Максимална величина траке, `0` = нема ограничења (ова опција се користи
+ само ако је `size` = `0`).
+
+| color_bg | боја |
+ Подразумевана боја позадине траке.
+
+| color_fg | боја |
+ Подразумевана боја текста у траци.
+
+| color_delim | боја |
+ Боја граничника у траци.
+
+| hidden | `on`, `off` |
+ Када је ова опција `on`, трака је скривена. +
+ Напомена: уместо да мењате ову опцију, боље је да користите команду `/bar`,
+ на пример: `/bar toggle nicklist` (погледајте команду <<command_weechat_bar,/bar>>).
+
+| separator | `on`, `off` |
+ Када је ова опција `on`, између ове траке и осталих (или разговора) се
+ приказује граничник (линија).
+
+| items | стринг |
+ Листа _items_ (погледајте <<bar_items,ставке>> за више информација).
+
+| filling_left_right | `+horizontal+`, `+vertical+`, `+columns_horizontal+`, `+columns_vertical+` |
+ Тип испуне за траку која има позицију `left` или `right` (погледајте
+ <<bar_filling,испуну>> за више информација).
+
+| filling_top_bottom | `+horizontal+`, `+vertical+`, `+columns_horizontal+`, `+columns_vertical+` |
+ Тип испуне за траку која има позицију `top` или `bottom` (погледајте
+ <<bar_filling,испуну>> за више информација).
+
+| conditions | стринг |
+ Услови под којима се трака приказује (погледајте <<bar_conditions,услове>> за
+ више информација).
+|===
+
+[[bar_items]]
+==== Ставке
+
+Опција _items_ је стринг са листом ставки траке, раздвојених запетом (ставке су на екрану раздвојене размаком) или `+++` (спојене ставке).
+
+Листа ставки траке се приказује командом `/bar listitems`.
+
+Испред или након имена ставке можете да употребите карактере (који нису слова или цифре, `+-+` или `+_+`). Они ће се приказивати испред/иза ставке у боји граничника која је дефинисана за траку (опција _color_delim_).
+
+Пример за траку са ставкама „[time],buffer_number+:+buffer_plugin+.+buffer_name”:
+
+....
+┌───────────────────────────────────────────────────────────────────────────┐
+│[12:55] 3:irc/libera.#weechat │
+└───────────────────────────────────────────────────────────────────────────┘
+....
+
+Ако желите да форсирате бафер у којем ће се приказивати ставка траке, употребите посебну синтаксу: „@бафер:ставка” (где је „бафер” пуно име бафера, а „ставка” је име ставке траке).
+
+Ово је корисно у кореним (root) тракама код приказа ставке за неки одређени бафер који се не приказује у текућем прозору (или се чак уопште не приказује).
+
+Пример: листа надимака за bitlbee у кореној траци (ако се трака зове _bitlist_ а bitlbee сервер се зове _bitlbee_):
+
+----
+/set weechat.bar.bitlist.items "@irc.bitlbee.&bitlbee:buffer_nicklist"
+----
+
+[[bar_filling]]
+==== Испуна
+
+Постоји четири врсте испуне:
+
+* `+horizontal+`: ставке се приказују хоризонтално, с лева у десно. Ако у ставкама постоје преломи линија, за раздвајање линија се користи размак.
+* `+vertical+`: ставке се приказују од врха ка дну. Ако у ставкама постоје преломи линија, за раздвајање линија се користи прелом линија.
+* `+columns_horizontal+`: ставке се приказују по колонама, уз лево поравнат текст. Прва ставка је горе лево, друга у истој линији, са њене десне стране.
+* `+columns_vertical+`: ставке се приказују по колонама, уз лево поравнат текст. Прва ставка је горе лево, друга ставка је једну линију испод.
+
+Подразумеване траке _title_, _status_ и _input_ имају _horizontal_ испуну, а подразумевана трака _nicklist_ има _vertical_ испуну.
+
+Неки примери испуне за траку _nicklist_:
+
+....
+┌───────────────────────────────────────────────────────────────────────┐
+│Добродошли на #test, ово је тест канал │
+│12:54:15 peter | hey! │@carl │
+│12:55:01 +Max | hello │@jessika│
+│ │@maddy │
+│ │%Diego │
+│ │%Melody │
+│ │+Max │
+│ │ celia │
+│ │ Eva │
+│ │ freddy │
+│ │ Harold^│
+│ │ henry4 │
+│ │ jimmy17│
+│ │ jodie ▼│
+│[12:55] [6] [irc/libera] 3:#test(+n){24} │
+│[@carl] █ │
+└───────────────────────────────────────────────────────────────────────┘
+ filling_left_right = vertical ▲
+
+┌───────────────────────────────────────────────────────────────────────┐
+│Добродошли на #test, ово је тест канал │
+│12:54:15 peter | hey! │@carl lee │
+│12:55:01 +Max | hello │@jessika louise │
+│ │@maddy mario │
+│ │%Diego mark │
+│ │%Melody peter │
+│ │+Max Rachel │
+│ │ celia richard│
+│ │ Eva sheryl │
+│ │ freddy Vince │
+│ │ Harold^ warren │
+│ │ henry4 zack │
+│ │ jimmy17 │
+│ │ jodie │
+│[12:55] [6] [irc/libera] 3:#test(+n){24} │
+│[@carl] █ │
+└───────────────────────────────────────────────────────────────────────┘
+ filling_left_right = columns_vertical ▲
+
+┌───────────────────────────────────────────────────────────────────────┐
+│@carl %Diego celia Harold^ jodie mario Rachel Vince │
+│@jessika %Melody Eva henry4 lee mark richard warren │
+│@maddy +Max freddy jimmy17 louise peter sheryl zack │
+│───────────────────────────────────────────────────────────────────────│
+│ │
+ filling_top_bottom = columns_vertical ▲
+
+┌───────────────────────────────────────────────────────────────────────┐
+│@carl @jessika @maddy %Diego %Melody +Max celia Eva │
+│ freddy Harold^ henry4 jimmy17 jodie lee louise mario │
+│ mark peter Rachel richard sheryl Vince warren zack │
+│───────────────────────────────────────────────────────────────────────│
+│ │
+ filling_top_bottom = columns_horizontal ▲
+....
+
+[[bar_conditions]]
+==== Услови
+
+Опција _conditions_ је стринг који се израчунава како би се одредило да ли трака сме да се прикаже или не.
+
+Стринг може да буде:
+
+* _active_: прозор мора бити активан
+* _inactive_: прозор мора бити неактиван
+* _nicklist_: бафер који се приказује у прозору мора имати листу надимака
+* израз: израчунава се као логичка вредност (погледајте команду <<command_weechat_eval,/eval>>)
+
+У изразу су доступне следеће променљиве:
+
+* `+${active}+`: истинито ако је прозор активан
+* `+${inactive}+`: истинито ако је прозор неактиван
+* `+${nicklist}+`: истинито ако бафер приказан у прозору има листу надимака
+
+Доступни су следећи показивачи:
+
+* `+${window}+`: прозор за који се израчунава услов
+* `+${buffer}+`: бафер прозора за који се израчунава услов
+
+Пример за приказ nicklist траке у свим баферима са листом надимака, само ако је ширина терминала > 100:
+
+----
+/set weechat.bar.nicklist.conditions "${nicklist} && ${info:term_width} > 100"
+----
+
+Исти услов, само што се листа надимака увек приказује у баферу _&bitlbee_ (чак и ако је терминал мали):
+
+----
+/set weechat.bar.nicklist.conditions "${nicklist} && (${info:term_width} > 100 || ${buffer.full_name} == irc.bitlbee.&bitlbee)"
+----
+
+[[bare_display]]
+=== Огољени приказ
+
+Да бисте једноставно кликнули на дугачке URL адресе и бирали текст (користећи миша), можете употребити посебан приказ који се зове „огољени приказ”.
+
+Огољени приказ има следеће особине:
+
+* Приказује само садржај текућег бафера: нема ни подељених прозора ни трака (нема наслова, листе надимака, статуса, уноса, ...).
+* Подршка за миш програма WeeChat је искључена (ако је била укључена): миш можете да користите на исти начин као у терминалу, да кликћете на URL адресе и вршите избор текста.
+* Ncurses се не користи, тако да се URL адресе не секу на крају линије.
+
+Подразумевани тастер којим се укључује огољени приказ је kbd:[Alt+l] (`L`), и истим тастером се напушта (или као што је подразумевано, било шта што мења унос ће изазвати напуштање огољеног приказа, погледајте опцију <<option_weechat.look.bare_display_exit_on_input,weechat.look.bare_display_exit_on_input>>).
+
+Формат приказа времена може да се прилагоди опцијом <<option_weechat.look.bare_display_time_format,weechat.look.bare_display_time_format>>.
+
+Огољени приказ може да се укључи на неко одређено време командом <<command_weechat_window,/window>>.
+
+Ако програм WeeChat изгледа на следећи начин:
+
+....
+┌──────────────────────────────────────────────────────────────────────────────────────┐
+│1.libera │Добродошли на #abc │
+│ weechat│12:52:27 --> | Flashy (flashcode@weechat.org) је приступио у #abc │@Flashy│
+│2. #test│12:52:27 -- | Надимци #abc: [@Flashy @joe +weebot peter] │@joe │
+│3. #abc │12:52:27 -- | Канал #abc: 4 надимка (2 опа, 1 глас, 1 обични) │+weebot│
+│4. #def │12:52:27 -- | Канал је креиран у Уто Јан 27 06:30:17 2009 │peter │
+│5. #ghi │12:54:15 peter | hey! │ │
+│ │12:55:01 @joe | peter: hook_process: https://weechat.org/files/do │ │
+│ │ | c/devel/weechat_plugin_api.en.html#_weechat_hook_ │ │
+│ │ | process │ │
+│ │ │ │
+│ │ │ │
+│ │ │ │
+│ │ │ │
+│ │ │ │
+│ │ │ │
+│ │ │ │
+│ │ │ │
+│ │ │ │
+│ │ │ │
+│ │ │ │
+│ │ │ │
+│ │[12:55] [5] [irc/libera] 3:#abc(+n){4} │
+│ │[@Flashy(i)] hi peter!█ │
+└──────────────────────────────────────────────────────────────────────────────────────┘
+....
+
+Екран у огољеном приказу ће изгледати овако:
+
+....
+┌───────────────────────────────────────────────────────────────────────────────────────┐
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│12:52 --> Flashy (flashcode@weechat.org) је приступио у #abc │
+│12:52 -- Надимци #abc: [@Flashy @joe +weebot peter] │
+│12:52 -- Канал #abc: 4 надимка (2 опа, 1 глас, 1 обичан) │
+│12:52 -- Канал је креиран у Уто Јан 27 06:30:17 2009 │
+│12:54 <peter> hey! │
+│12:55 <@joe> peter: hook_process: https://weechat.org/files/doc/devel/weechat_plugin_ap│
+│i.en.html#_weechat_hook_process │
+└───────────────────────────────────────────────────────────────────────────────────────┘
+....
+
+Тако да у свом терминалу без проблема можете кликнути на URL адресу од надимка _joe_ (наравно, ово претпоставља да ваш терминал подржава кликове на URL адресе).
+
+[[notify_levels]]
+=== Нивои обавештавања
+
+[[setup_notify_levels]]
+==== Постављање нивоа обавештавања
+
+У порукама које се приказују у баферима може постојати четири нивоа, од нижег ка вишем:
+
+* _low_: важност поруке је мала (на пример, irc join/part/quit порука)
+* _message_: порука од корисника
+* _private_: порука у приватном баферу
+* _highlight_: порука са истицањем
+
+Сваки бафер поседује ниво обавештавања који се користи за одлуку које поруке се додају на врућу листу бафера.
+
+Подразумевани ниво обавештавања може да се постави опцијом <<option_weechat.look.buffer_notify_default,weechat.look.buffer_notify_default>>, подразумевана вредност је _all_.
+
+[width="75%", cols="2m,7", options="header"]
+|===
+| Ниво обавештавања | Ниво порука које се додају на врућу листу
+| none | (ниједна)
+| highlight | _highlight_ + _private_
+| message | _highlight_ + _private_ + _message_
+| all | _highlight_ + _private_ + _message_ + _low_
+|===
+
+Ниво обавештавања може да се дефинише за скуп бафера, на пример за све бафере irc сервера „libera”:
+
+----
+/set weechat.notify.irc.libera message
+----
+
+Постављање нивоа обавештавања _highlight_ само на каналу „#weechat”:
+
+----
+/set weechat.notify.irc.libera.#weechat highlight
+----
+
+Ниво обавештавања за бафер може да се постави командом `/buffer`:
+
+----
+/buffer notify highlight
+----
+
+[[max_hotlist_level_nicks]]
+==== Максимални ниво вруће листе за надимке
+
+За неке надимке је могуће постављање максималног нивоа вруће листе, по баферу или по групи бафера (као што су IRC сервери).
+
+Особина бафера „hotlist_max_level_nicks” може да се постави на листу надимака, а за сваки надимак у листи максимални ниво вруће листе који се окида. Могући су следећи нивои:
+
+* -1: за надимак нема измене вруће листе
+* 0: ниски приоритет (као што су join/part поруке)
+* 1: порука
+* 2: приватна порука
+* 3: истицање (у суштини је бескорисно, јер је за све поруке већ подразумевани максимум)
+
+На пример, ако желите да искључите истицања од „joe” и „mike” у текућем баферу:
+
+----
+/buffer set hotlist_max_level_nicks_add joe:2,mike:2
+----
+
+[NOTE]
+Особина бафера „hotlist_max_level_nicks” се не чува у конфигурацији. + Лако можете да је сачувате скриптом _buffer_autoset.py_: инсталирате је командом `+/script install buffer_autoset.py+`, а помоћ добијате са `+/help buffer_autoset+`.
+
+[[highlights]]
+=== Истицања
+
+[[highlights_words]]
+==== Додавање речи које се истичу
+
+Програм WeeChat подразумевано истиче поруке од осталих корисника које садрже у себи ваш надимак, тако да истицање зависи од бафера (ваш надимак не мора да буде исти у свим баферима).
+
+Остале речи моожете да додате опцијом <<option_weechat.look.highlight,weechat.look.highlight>>, на пример ако желите да се истиче ваш надимак и „реч1”, „реч2”, као и све речи које почињу са „test”:
+
+----
+/set weechat.look.highlight реч1,реч2,test*
+----
+
+Ако вам је потребно одређеније правило за реч, можете да употребите регуларне изразе опцијом <<option_weechat.look.highlight_regex,weechat.look.highlight_regex>>, на пример да истакнете речи „flashcode”, „flashcöde” и „flashy”:
+
+----
+/set weechat.look.highlight_regex flashc[oö]de|flashy
+----
+
+Граничници око речи које се истичу могу да се прилагоде опцијом <<option_weechat.look.word_chars_highlight,weechat.look.word_chars_highlight>>.
+
+[[highlights_tags]]
+==== Додавање ознака истицању
+
+Приказане линије могу да садрже „ознаке” које пружају неке информације о пореклу само поруке. + Ознаке можете приказати командом `/debug tags` (иста команда их и сакрива).
+
+Опцијом <<option_weechat.look.highlight_tags,weechat.look.highlight_tags>> можете да додате одређене ознаке истицању. Ознаке се раздвајају запетама и више ознака можете да раздвојите са `+++` чиме наводите логичко „и” међу њима.
+
+На пример, ако желите да се истичу све поруке од надимка „FlashCode” и сва обавештења од надимака који почињу са „toto”:
+
+----
+/set weechat.look.highlight_tags "nick_flashcode,irc_notice+nick_toto*"
+----
+
+[[highlights_regex_buffer]]
+==== Постављање посебних истицања у баферу
+
+Истицање помоћу регуларног израза можете да форсирате особином бафера „highlight_regex”.
+
+На пример, да форсирате истицање свих порука у текућем баферу:
+
+----
+/buffer set highlight_regex .*
+----
+
+[NOTE]
+Особина бафера „highlight_regex” се не чува у конфигурацији. + Лако можете да је сачувате скриптом _buffer_autoset.py_: инсталирате је командом `+/script install buffer_autoset.py+`, а помоћ добијате са `+/help buffer_autoset+`.
+
+[[key_bindings]]
+=== Подразумеване тастерске пречице
+
+[[key_bindings_command_line]]
+==== Тастери за командну линију
+
+[width="100%", cols="^.^3,.^8,.^5", options="header"]
+|===
+| Тастер | Опис | Команда
+| kbd:[←] +
+ kbd:[Ctrl+b] | Одлазак на претходни карактер у командној линији. | `+/input move_previous_char+`
+| kbd:[→] +
+ kbd:[Ctrl+f] | Одлазак на наредни карактер у командној линији. | `+/input move_next_char+`
+| kbd:[Ctrl+←] +
+ kbd:[Alt+b] | Одлазак на претходну реч у командној линији. | `+/input move_previous_word+`
+| kbd:[Ctrl+→] +
+ kbd:[Alt+f] | Одлазак на наредну реч у командној линији. | `+/input move_next_word+`
+| kbd:[Home] +
+ kbd:[Ctrl+a] | Одлазак на почетак командне линије. | `+/input move_beginning_of_line+`
+| kbd:[End] +
+ kbd:[Ctrl+e] | Одлазак на крај командне линије. | `+/input move_end_of_line+`
+| kbd:[Ctrl+c],
+ kbd:[b] | Уметање кода за подебљани текст. | `+/input insert \x02+`
+| kbd:[Ctrl+c],
+ kbd:[c] | Уметање кода за обојени текст. | `+/input insert \x03+`
+| kbd:[Ctrl+c],
+ kbd:[i] | Уметање кода за текст у курзиву. | `+/input insert \x1D+`
+| kbd:[Ctrl+c],
+ kbd:[o] | Уметање кода за ресет боје. | `+/input insert \x0F+`
+| kbd:[Ctrl+c],
+ kbd:[v] | Уметање кода за обрнуту боју. | `+/input insert \x16+`
+| kbd:[Ctrl+c],
+ kbd:[_] | Уметање кода за подвучени текст. | `+/input insert \x1F+`
+| kbd:[Del] +
+ kbd:[Ctrl+d] | Брисање наредног карактера у командној линији. | `+/input delete_next_char+`
+| kbd:[Backsp.] +
+ kbd:[Ctrl+h] | Брисање претходног карактера у командној линији. | `+/input delete_previous_char+`
+| kbd:[Ctrl+k] | Брисање од курсора до краја командне линије (обрисани стринг се копира у интерни клипборд). | `+/input delete_end_of_line+`
+| kbd:[Ctrl+r] | Претрага на текст у историји бафера (погледајте <<key_bindings_search_context,тастери у „search”>>). | `+/input search_text_here+`
+| kbd:[Ctrl+t] | Транспозиција карактера. | `/input transpose_chars`
+| kbd:[Ctrl+u] | Брисање од курсора до почетка командне линије (обрисани стринг се копира у интерни клипборд). | `+/input delete_beginning_of_line+`
+| kbd:[Ctrl+w] | Брисање претходне речи командне линије (обрисани стринг се копира у интерни клипборд). | `+/input delete_previous_word+`
+| kbd:[Ctrl+y] | Налепљивање садржаја интерног клипборда. | `+/input clipboard_paste+`
+| kbd:[Ctrl+_] | Поништавање последње акције у командној линији. | `+/input undo+`
+| kbd:[Alt+_] | Враћање последње поништене акције у командној линији. | `+/input redo+`
+| kbd:[Tab] | Довршавање команде или надимка (kbd:[Tab] поново: проналажење наредног довршавања). | `+/input complete_next+`
+| kbd:[Shift+Tab] | Без довршавања: обављање парцијалног довршавања, са довршавањем на чекању: довршавање са претходно пронађеним појмом. | `+/input complete_previous+`
+| kbd:[Enter] +
+ kbd:[Ctrl+j] +
+ kbd:[Ctrl+m] | Извршавање команде или слање поруке (у режиму претраге: заустављање претраге). | `+/input return+`
+| kbd:[Alt+Enter] | Умеће прелом реда. | `+/input insert \n+`
+| kbd:[↑] | Позив претходне команде/поруке (у режиму претраге: претрага навише). | `+/input history_previous+`
+| kbd:[↓] | Позив наредне команде/поруке (у режиму претраге: претрага наниже). | `+/input history_next+`
+| kbd:[Ctrl+↑] | Позив претходне команде/поруке у глобалној историји (заједничкој за све бафере). | `+/input history_global_previous+`
+| kbd:[Ctrl+↓] | Позив наредне команде/поруке у глобалној историји (заједничкој за све бафере). | `+/input history_global_next+`
+| kbd:[Alt+d] | Брисање наредне речи у командној линији (обрисани стринг се копира у интерни клипборд). | `+/input delete_next_word+`
+| kbd:[Alt+k] | Хвата тастер и умеће његов кôд (и комадну везану за њега, ако постоји таква пречица) у командну линију. | `+/input grab_key_command+`
+| kbd:[Alt+r] | Брише комплетну командну линију. | `+/input delete_line+`
+| kbd:[Alt+s] | Пребацује стање активности модула за проверу правописа. | `+/mute spell toggle+`
+|===
+
+[[key_bindings_buffers_windows]]
+==== Тастери за бафере / прозоре
+
+[width="100%", cols="^.^3,.^8,.^5", options="header"]
+|===
+| Тастер | Опис | Команда
+| kbd:[Ctrl+l] (`L`) | Поново исцртава цео прозор. | `+/window refresh+`
+| kbd:[Ctrl+s],
+ kbd:[Ctrl+u] | Поставља маркер непрочитано за све бафере. | `+/input set_unread+`
+| kbd:[Ctrl+x] | Пребацује текући бафер ако су бафери прикачени са истим бројем. | `+/input switch_active_buffer+`
+| kbd:[Alt+x] | Зум на спојени бафер (kbd:[Alt+x] поново: приказује све спојене бафере). | `+/input zoom_merged_buffer+`
+| kbd:[PgUp] | Скролује навише једну страну у историји бафера. | `+/window page_up+`
+| kbd:[PgDn] | Скролује наниже једну страну у историји бафера. | `+/window page_down+`
+| kbd:[Alt+PgUp] | Скролује навише неколико линија у историји бафера. | `+/window scroll_up+`
+| kbd:[Alt+PgDn] | Скролује наниже неколико линија у историји бафера. | `+/window scroll_down+`
+| kbd:[Alt+Home] | Скролује на врх бафера. | `+/window scroll_top+`
+| kbd:[Alt+End] | Скролује на дно бафера. | `+/window scroll_bottom+`
+| kbd:[F1] +
+ kbd:[Ctrl+F1] | Скролује навише једну страну листе бафера. | `+/bar scroll buflist * -100%+`
+| kbd:[F2] +
+ kbd:[Ctrl+F2] | Скролује наниже једну страну листе бафера. | `+/bar scroll buflist * +100%+`
+| kbd:[Alt+F1] | Скок на почетак листе бафера. | `+/bar scroll buflist * b+`
+| kbd:[Alt+F2] | Скок на крај листе бафера. | `+/bar scroll buflist * e+`
+| kbd:[Alt+←] +
+ kbd:[Alt+↑] +
+ kbd:[Ctrl+p] +
+ kbd:[F5] | Пребацивање на претходни бафер. | `+/buffer -1+`
+| kbd:[Alt+→] +
+ kbd:[Alt+↓] +
+ kbd:[Ctrl+n] +
+ kbd:[F6] | Пребацивање на наредни бафер. | `+/buffer +1+`
+| kbd:[F7] | Пребацивање на претходни прозор. | `+/window -1+`
+| kbd:[F8] | Пребацивање на наредни прозор. | `+/window +1+`
+| kbd:[F9] | Скролује наслов бафера у лево. | `+/bar scroll title * -30%+`
+| kbd:[F10] | Скролује наслов бафера у десно. | `+/bar scroll title * +30%+`
+| kbd:[F11] +
+ kbd:[Ctrl+F11] | Скролује једну страну навише у листи надимака. | `+/bar scroll nicklist * -100%+`
+| kbd:[F12] +
+ kbd:[Ctrl+F12] | Скролује једну страну наниже у листи надимака. | `+/bar scroll nicklist * +100%+`
+| kbd:[Alt+F11] | Скок на почетак листе надимака. | `+/bar scroll nicklist * b+`
+| kbd:[Alt+F12] | Скок на крај листе надимака. | `+/bar scroll nicklist * e+`
+| kbd:[Alt+a] | Пребацивање на следећи бафер у коме има активности (са приоритетом: истицање, порука, остало). | `+/input jump_smart+`
+| kbd:[Alt+Shift+B] | Пребацивање активности листе бафера. | `+/buflist toggle+`
+| kbd:[Alt+h] | Чишћење вруће листе (обавештавање о активности у осталим баферима). | `+/input hotlist_clear+`
+| kbd:[Alt+j],
+ kbd:[Alt+f] | Пребацивање на први бафер. | `+/buffer -+`
+| kbd:[Alt+j],
+ kbd:[Alt+l] (`L`) | Пребацивање на последњи бафер. | `+/buffer ++`
+| kbd:[Alt+j],
+ kbd:[Alt+r] | Пребацивање на сирови IRC бафер. | `+/server raw+`
+| kbd:[Alt+j],
+ kbd:[Alt+s] | пребацивање на бафер IRC сервера. | `+/server jump+`
+| kbd:[Alt+0...9] | Пребацивање на бафер према броју (0 = 10). | `+/buffer *N+`
+| kbd:[Alt+j],
+ kbd:[01...99] | Пребацивање на бафер према броју. | `+/buffer *NN+`
+| kbd:[Alt+l] (`L`) | Пребацивање активности огољеног приказа. | `+/window bare+`
+| kbd:[Alt+m] | Пребацивање активности миша. | `+/mouse toggle+`
+| kbd:[Alt+n] | Скроловање до наредног истицања. | `+/window scroll_next_highlight+`
+| kbd:[Alt+Shift+N] | Пребацивање видљивости траке листе надимака. | `+/bar toggle nicklist+`
+| kbd:[Alt+p] | Скроловање на претходно истицање. | `+/window scroll_previous_highlight+`
+| kbd:[Alt+u] | Скроловање на прву непрочитану линију у баферу. | `+/window scroll_unread+`
+| kbd:[Alt+w],
+ kbd:[Alt+↑] | Прелаз на прозор изнад. | `+/window up+`
+| kbd:[Alt+w],
+ kbd:[Alt+↓] | Прелаз на прозор испод. | `+/window down+`
+| kbd:[Alt+w],
+ kbd:[Alt+←] | Прелаз на прозор са леве стране. | `+/window left+`
+| kbd:[Alt+w],
+ kbd:[Alt+→] | Прелаз на прозор са десне стране. | `+/window right+`
+| kbd:[Alt+w],
+ kbd:[Alt+b] | Уједначавање величине свих прозора. | `+/window balance+`
+| kbd:[Alt+w],
+ kbd:[Alt+s] | Замена бафера два прозора. | `+/window swap+`
+| kbd:[Alt+z] | Зум на текући прозор (kbd:[Alt+z] поново: враћање почетног стања прозора, пре зумирања). | `+/window zoom+`
+| kbd:[Alt+<] | Прелаз на претходни бафер у листи посећених бафера. | `+/input jump_previously_visited_buffer+`
+| kbd:[Alt+>] | Прелаз на наредни бафер у листи посећених бафера. | `+/input jump_next_visited_buffer+`
+| kbd:[Alt+/] | Прелаз на последње приказани бафер. | `+/input jump_last_buffer_displayed+`
+| kbd:[Alt+=] | Пребацивање активности филтера. | `+/filter toggle+`
+| kbd:[Alt+-] | Пребацивање активности филтера у текућем баферу. | `+/filter toggle @+`
+|===
+
+[[key_bindings_search_context]]
+==== Тастери за „search” контекст
+
+Следећи тастери се користе у „search” контексту (када се притисне kbd:[Ctrl+r] за претрагу текста у баферу).
+
+[width="100%", cols="^.^3,.^8,.^5", options="header"]
+|===
+| Тастер | Опис | Команда
+| kbd:[Ctrl+r] | Пребацивање типа претраге: стринг (подраз.), регуларни израз. | `+/input search_switch_regex+`
+| kbd:[Alt+c] | Пребацивање разликовања величине слова у претраци. | `+/input search_switch_case+`
+| kbd:[Tab] | Пребацивање претраге у: порукама (подраз.), префиксима, префиксима + порукама. | `+/input search_switch_where+`
+| kbd:[↑] | Претрага претходне линије. | `+/input search_previous+`
+| kbd:[↓] | Претрага наредне линије. | `+/input search_next+`
+| kbd:[Enter] +
+ kbd:[Ctrl+j] +
+ kbd:[Ctrl+m] | Заустављање претраге на текућој позицији. | `+/input search_stop_here+`
+| kbd:[Ctrl+q] | Заустављање претраге и скроловање на дно бафера. | `+/input search_stop+`
+|===
+
+[[key_bindings_cursor_context]]
+==== Тастери за „cursor” контекст
+
+Ови тастери се користе у „cursor” контексту (слободно померање курсора по екрану).
+
+[width="100%", cols="^.^3,^.^2,.^7,.^7", options="header"]
+|===
+| Тастер | Површина | Опис | Команда
+| kbd:[↑] | - | Помера курсор једну линију навише. | `+/cursor move up+`
+| kbd:[↓] | - | Помера курсор једну линију наниже. | `+/cursor move down+`
+| kbd:[←] | - | Помера курсор једну колони у лево. | `+/cursor move left+`
+| kbd:[→] | - | Помера курсор једну колону у десно. | `+/cursor move right+`
+| kbd:[Alt+↑] | - | Помера курсор једну површину навише. | `+/cursor move area_up+`
+| kbd:[Alt+↓] | - | Помера курсор једну површину наниже. | `+/cursor move area_down+`
+| kbd:[Alt+←] | - | Помера курсор једну површину у лево. | `+/cursor move area_left+`
+| kbd:[Alt+→] | - | Помера курсор једну површину у десно. | `+/cursor move area_right+`
+| kbd:[m] | чет | Цитирање поруке. | `+hsignal:chat_quote_message;/cursor stop+`
+| kbd:[q] | чет | Цитирање префикса + поруке. | `+hsignal:chat_quote_prefix_message;/cursor stop+`
+| kbd:[Q] | чет | Quote time + prefix + message. | `+hsignal:chat_quote_time_prefix_message;/cursor stop+`
+| kbd:[b] | листа надимака | Забрањује надимак. | `+/window ${_window_number};/ban ${nick}+`
+| kbd:[k] | листа надимака | Избацује надимак. | `+/window ${_window_number};/kick ${nick}+`
+| kbd:[K] | листа надимака | Избацује и забрањује надимак. | `+/window ${_window_number};/kickban ${nick}+`
+| kbd:[q] | листа надимака | Отвара упит са надимком. | `+/window ${_window_number};/query ${nick};/cursor stop+`
+| kbd:[w] | листа надимака | Извршава whois над надимком. | `+/window ${_window_number};/whois ${nick}+`
+| kbd:[Enter] +
+ kbd:[Ctrl+j] +
+ kbd:[Ctrl+m] | - | Зауставља режим померања курсора | `/cursor stop`
+|===
+
+[[key_bindings_mouse_context]]
+==== Тастери за „mouse” контекст
+
+Ови тастери се користе у „mouse” контексту, то јест када се јаве догађаји миша.
+
+[width="100%", cols="^.^3,^.^3,^.^3,.^8,.^8", options="header"]
+|===
+| Тастер/Точкић ^(1)^ | Гестикулација | Површина | Опис | Команда
+| ◾◽◽ | - | чет | Пребацивање на прозор. | `+/window ${_window_number}+`
+| ◾◽◽ | лево | чет | Пребацивање на претходни бафер. | `+/window ${_window_number};/buffer +1+`
+| ◾◽◽ | десно | чет | Пребацивање на наредни бафер. | `+/window ${_window_number};/buffer +1+`
+| ◾◽◽ | лево (дуго) | чет | Пребацивање на први бафер. | `+/window ${_window_number};/buffer 1+`
+| ◾◽◽ | десно (дуго) | чет | Пребацивање на последњи бафер. | `+/window ${_window_number};/input jump_last_buffer+`
+| kbd:[▲] | - | чет | Скролује навише неколико линија у историји бафера. | `+/window scroll_up -window ${_window_number}+`
+| kbd:[▼] | - | чет | Скролује наниже неколико линија у историји бафера. | `+/window scroll_down -window ${_window_number}+`
+| kbd:[Ctrl+▲] | - | чет | Скролује хоризонтално у лево. | `+/window scroll_horiz -window ${_window_number} -10%+`
+| kbd:[Ctrl+▼] | - | чет | Скролује хоризонтално у десно. | `+/window scroll_horiz -window ${_window_number} +10%+`
+| kbd:[▲] | - | чет: fset бафер | Помера за пет линија навише у fset баферу. | `+/fset -up 5+`
+| kbd:[▼] | - | чет: fset бафер | Помера за пет линија наниже у fset баферу. | `+/fset -down 5+`
+| ◾◽◽ | - | чет: fset бафер | Бира линију у fset баферу. | `+/window ${_window_number};/fset -go ${_chat_line_y}+`
+| ◽◽◾ | - | чет: fset бафер | Пребацује логичку вредност (on/off) или уређује вредност опције. | `+hsignal:fset_mouse+`
+| ◽◽◾ | лево | чет: fset бафер | Умањује вредност за цео број/боју, поставља/надовезује вредност за остале типове. | `+hsignal:fset_mouse+`
+| ◽◽◾ | десно | чет: fset бафер | Увећава вредност за цео број/боју, поставља/надовезује вредност за остале типове. | `+hsignal:fset_mouse+`
+| ◽◽◾ | горе / доле | чет: fset бафер | Маркира/уклања маркер са више опција. | `+hsignal:fset_mouse+`
+| kbd:[▲] | - | чет: script бафер | Помера за пет линија навише у script баферу. | `+/script up 5+`
+| kbd:[▼] | - | чет: script бафер | Помера за пет линија наниже у script баферу. | `+/script down 5+`
+| ◾◽◽ | - | chat: script бафер | Бира линију у script баферу. | `+/script go ${_chat_line_y}+`
+| ◽◽◾ | - | chat: script бафер | Инсталира/уклања скрипту. | `+/script go ${_chat_line_y};/script installremove -q ${script_name_with_extension}+`
+| ◾◽◽ | горе / лево | листа бафера | Помера бафер на нижи број. | Signal `+buflist_mouse+`.
+| ◾◽◽ | доле / десно | листа бафера | Помера бафер на виши број. | Signal `+buflist_mouse+`.
+| ◾◽◽ | - | листа бафера | Пребацивање на бафер (претходно посећени багер ако је бафер текући). | Signal `+buflist_mouse+`.
+| ◽◽◾ | - | листа бафера | Пребацивање на наредни посећени бафер ако је бафер текући. | Signal `+buflist_mouse+`.
+| kbd:[Ctrl+▲] | - | листа бафера | Пребацивање на претходни бафер. | Signal `+buflist_mouse+`.
+| kbd:[Ctrl+▼] | - | листа бафера | Пребацивање на наредни бафер. | Signal `+buflist_mouse+`.
+| ◾◽◽ | горе | листа надимака | Скроловање једне стране навише у листи надимака. | `+/bar scroll nicklist ${_window_number} -100%+`
+| ◾◽◽ | доле | листа надимака | Скроловање једне стране наниже у листи надимака. | `+/bar scroll nicklist ${_window_number} +100%+`
+| ◾◽◽ | горе (дуго) | листа надимака | Скок на почетак листе надимака. | `+/bar scroll nicklist ${_window_number} b+`
+| ◾◽◽ | доле (дуго) | листа надимака | Скок на крај листе надимака. | `+/bar scroll nicklist ${_window_number} e+`
+| ◾◽◽ | - | листа надимака | Отварање упита са надимком. | `+/window ${_window_number};/query ${nick}+`
+| ◽◽◾ | - | листа надимака | Извршавање whois над надимком. | `+/window ${_window_number};/whois ${nick}+`
+| ◾◽◽ | лево | листа надимака | Избацивање надимка. | `+/window ${_window_number};/kick ${nick}+`
+| ◾◽◽ | лево (дуго) | листа надимака | Избацивање и забрана надимка. | `+/window ${_window_number};/kickban ${nick}+`
+| ◽◽◾ | лево | листа надимака | Забрана надимка. | `+/window ${_window_number};/ban ${nick}+`
+| ◽◽◾ | - | унос | Хвата догађај миша и умеће његов кôд у командну линију. | `+/input grab_mouse_area+`
+| kbd:[▲] | - | било која трака | Скролује траку за -20%. | `+/bar scroll ${_bar_name} ${_window_number} -20%+`
+| kbd:[▼] | - | било која трака | Скролује траку за +20%. | `+/bar scroll ${_bar_name} ${_window_number} +20%+`
+| ◽◾◽ | - | било где | Започиње режим померања курсора на овој тачки. | `+/cursor go ${_x},${_y}+`
+|===
+
+[NOTE]
+^(1)^ kbd:[▲] и kbd:[▼] значе точкић навише и наниже.
+
+[[key_bindings_fset_buffer]]
+==== Тастери за fset бафер
+
+Ови тастери и акције се користе у fset баферу (погледајте<<fset_plugin,Fset додатак>>).
+
+[width="100%", cols="^.^3,^.^2,.^8,.^5", options="header"]
+|===
+| Тастер | Акција ^(1)^ | Опис | Команда
+| kbd:[↑] | | Помера једну линију навише. | `+/fset -up+`
+| kbd:[↓] | | Помера једну линију наниже. | `+/fset -down+`
+| kbd:[PgUp] | | Помера једну страну навише. | `+/window page_up+`
+| kbd:[PgDn] | | Помера једну страну наниже. | `+/window page_down+`
+| kbd:[Alt+Home] | `pass:[<<]` | Скок на прву линију. | `+/fset -go 0+`
+| kbd:[Alt+End] | `pass:[>>]` | Скок на последњу линију. | `+/fset -go end+`
+| kbd:[F11] | `pass:[<]` | Скролује хоризонтално у лево. | `+/fset -left+`
+| kbd:[F12] | `pass:[>]` | Скролује хоризонтално у десно. | `+/fset -right+`
+| kbd:[Alt+Space] | `t` | Пребацује стање логичке вредности. | `+/fset -toggle+`
+| kbd:[Alt+-] | `-` | Одузима 1 од вредности за цео број/боју, поставља вредност за остале типове. | `+/fset -add -1+`
+| kbd:[Alt++] | `+` | Додаје 1 на вредност за цео број/боју, надовезује вредност за остале типове. | `+/fset -add 1+`
+| kbd:[Alt+f],
+ kbd:[Alt+r] | `r` | Ресетује вредност. | `+/fset -reset+`
+| kbd:[Alt+f],
+ kbd:[Alt+u] | `u` | Поставља да је вредност празна. | `+/fset -unset+`
+| kbd:[Alt+Enter] | `s` | Поставља вредност. | `+/fset -set+`
+| kbd:[Alt+f],
+ kbd:[Alt+n] | `n` | Поставља нову вредност. | `+/fset -setnew+`
+| kbd:[Alt+f],
+ kbd:[Alt+a] | `a` | Надовезује на вредност. | `+/fset -append+`
+| kbd:[Alt+,] | `,` | Маркира/уклања маркирање са опције. | `+/fset -mark 1+`
+| kbd:[Shift+↑] | | Помера једну линију навише и маркира/уклања маркирање са опције. | `+/fset -up; /fset -mark+`
+| kbd:[Shift+↓] | | Маркира/уклања маркирање са опције и помера се једну линију наниже. | `+/fset -mark; /fset -down+`
+| | `m:xxx` | Маркира приказане опције које се подударају са филтером „xxx” (дозвољава се било који филтер над опцијом или вредности, погледајте <<command_fset_fset,fset команду>>). |
+| | `u:xxx` | Уклања маркирање са приказаних опција које се подударају са филтером „xxx” (дозвољава се било који филтер над опцијом или вредности, погледајте <<command_fset_fset,fset команду>>). |
+| kbd:[Ctrl+l] (`L`) | | Освежава опције и цео екран. | `+/fset -refresh+`
+| | `$` | Освежава опције (маркиране опције остају маркиране). |
+| | `$$` | Освежава опције (уклања се маркирање са свих опција). |
+| kbd:[Alt+p] | | Пребацује стање опција описа додатка (`pass:[plugins.desc.*]`). | `+/mute /set fset.look.show_plugins_desc toggle+`
+| kbd:[Alt+v] | | Пребацује стање видљивости траке помоћи. | `+/bar toggle fset+`
+| | `s:x,y` | Сортира опције по пољима x,y (погледајте опцију <<option_fset.look.sort,fset.look.sort>>). | `+/mute /set fset.look.sort x,y+`
+| | `s:` | Ресетује сортирање на подразумевану вредност (погледајте опцију <<option_fset.look.sort,fset.look.sort>>). | `+/mute /unset fset.look.sort+`
+| | `w:xxx` | Извози опције у фајл „xxx”. | `+/fset -export xxx+`
+| | `w-:xxx` | Извози опције у фајл „xxx” без помоћи. | `+/fset -export -nohelp xxx+`
+| | `w+:xxx` | Извози опције у фајл „xxx” заједно са помоћи. | `+/fset -export -help xxx+`
+| kbd:[Ctrl+x] | `x` | Пребацује формат који се користи за приказ опција. | `+/fset -format+`
+| | `q` | Затвара fset бафер. | `+/buffer close+`
+|===
+
+[NOTE]
+^(1)^ Акција мора да се унесе као унос у командну линију, након чега се притисне kbd:[Ентер].
+
+[[key_bindings_script_buffer]]
+==== Тастери за script бафер
+
+Ови тастери и акције се користе у script баферу (погледајте <<scripts_plugins,Script додатак>>).
+
+[width="100%", cols="^.^3,^.^2,.^8,.^5", options="header"]
+|===
+| Тастер | Акција ^(1)^ | Опис | Команда
+| kbd:[↑] | | Помера једну линију навише. | `+/script up+`
+| kbd:[↓] | | Помера једну линију наниже. | `+/script down+`
+| kbd:[PgUp] | | Помера једну страну навише. | `+/window page_up+`
+| kbd:[PgDn] | | Помера једну страну наниже. | `+/window page_down+`
+| kbd:[Alt+i] | `i` | Инсталира скрипту. | `+/script install+`
+| kbd:[Alt+r] | `r` | Брише скрипту. | `+/script remove+`
+| kbd:[Alt+l] (`L`) | `l` | Учитава скрипту. | `+/script load+`
+| kbd:[Alt+u] | `u` | Уклања скрипту из меморије. | `+/script unload+`
+| kbd:[Alt+Shift+A] | `A` | Аутоучитавање скрипте. | `+/script toggleautoload+`
+| kbd:[Alt+h] | `h` | Задржава/отпушта скрипту. | `+/script hold+`
+| kbd:[Alt+v] | `v` | Преглед скрипте. | `+/script show+`
+|===
+
+[NOTE]
+^(1)^ Акција мора да се унесе као унос у командну линију, након чега се притисне kbd:[Ентер].
+
+[[mouse]]
+=== Подршка за миша
+
+Програм WeeChat подржава кликове и гестикулације мишем. Ради са локалним терминалом, и удаљено преко ssh везе са или без screen/tmux.
+
+[[mouse_enable]]
+==== Укључивање миша
+
+Ако при покретању програма желите да укључите миша:
+
+----
+/set weechat.look.mouse on
+----
+
+Ако тренутно желите да укључите миша, притисните kbd:[Alt+m] или извршите команду:
+
+----
+/mouse enable
+----
+
+Миш може привремено да се искључи, а то можете и да вежете за тастер. На пример тастер kbd:[Alt+%] да се на 10 секунди искључи миш:
+
+----
+/key bind meta-% /mouse toggle 10
+----
+
+[IMPORTANT]
+Када се у програму WeeChat укључи миш, он хвата све догађаје миша, тако да се акције као што су копирање/налепљивање или кликови на URL адресе не шаљу терминалу. Употреба тастера kbd:[Shift] чини да се догађаји шаљу директно терминалу, као да је миш искључен (на неким терминалима као што је iTerm, морате уместо kbd:[Shift] да употребите kbd:[Alt]).
+
+[NOTE]
+Ако имате било какав проблем са мишем, молимо вас да погледате link:weechat_faq.sr.html#mouse[WeeChat ЧПП / Миш].
+
+[[mouse_bind_events]]
+==== Везивање догађаја миша за команде
+
+Програм WeeChat је већ дефинисао подразумеване догађаје миша (погледајте <<key_bindings_mouse_context,тастере за „mouse” контекст>>).
+
+Командом `/key`, уз употребу контекста „mouse”, можете да измените или да додате нова везивања тастера (у вези синтаксе, погледајте команду <<command_weechat_key,/key>>).
+
+Име догађаја се састоји од модификатора (није обавезан), имена тастера/точкића и гестикулације (није обавезна). Различити елементи се раздвајају са `+-+`.
+
+Листа модификатора:
+
+[width="100%", cols="2m,3", options="header"]
+|===
+| Модификатор | Опис
+| ctrl | Тастер kbd:[Ctrl]
+| alt | Тастер kbd:[Alt]
+| ctrl-alt | Тастери kbd:[Ctrl] + kbd:[Alt]
+|===
+
+Листа тастера/точкића:
+
+[width="100%", cols="2m,3", options="header"]
+|===
+| Тастер/точкић | Опис
+| button1 | Клик левим тастером
+| button2 | Клик десним тастером
+| button3 | Клик средњим тастером (често је то клик точкићем)
+| button4 ... button9 | Клик на додатне тастере
+| wheelup | Точкић (навише)
+| wheeldown | Точкић (наниже)
+|===
+
+Листа гестикулација (само за тастере, не за точкић):
+
+[width="100%", cols="2m,3", options="header"]
+|===
+| Гестикулација | Растојање
+| gesture-up | 3 ... 19
+| gesture-up-long | ≥ 20
+| gesture-down | 3 ... 19
+| gesture-down-long | ≥ 20
+| gesture-left | 3 ... 39
+| gesture-left-long | ≥ 40
+| gesture-right | 3 ... 39
+| gesture-right-long | ≥ 40
+|===
+
+Листа некомплетних догађаја (само за тастере, корисно је у додацима/скриптама):
+
+[width="100%", cols="2m,3", options="header"]
+|===
+| Догађај | Опис
+| event-down | Тастер је притиснут, али још увек није отпуштен
+| event-drag | Миш је померен док се тастер држао притиснут
+|===
+
+Примери догађаја:
+
+* `button1`
+* `ctrl-button1`
+* `button1-gesture-right`
+* `button1-event-down`
+* `button1-event-drag`
+* `alt-button2-gesture-down-long`
+* `wheelup`
+* `ctrl-alt-wheeldown`
+* ...
+
+[TIP]
+Када се тастер везује у „mouse” контексту, могуће је подударање са више догађаја користећи `+*+` на почетку или крају имена, на пример `+button1-gesture-*+` ће да се подудари са било којом гестикулацијом која користи леви тастер миша.
+
+[TIP]
+Име догађаја можете сазнати командом `+/input grab_mouse+`, па извршавањем догађаја мишем. Ово ће да уметне име догађаја који сете извели у командну линију.
+
+[[secured_data]]
+=== Обезбеђени подаци
+
+[[secured_data_storage]]
+==== Чување
+
+Програм WeeChat може да шифрује лозинке или приватне податке употребом обезбеђених података који се чувају у фајлу _sec.conf_.
+
+Овај конфигурациони фајл се чита пре свих осталих, па се вредности из њега могу користити у разним опцијама програма WeeChat или опцијама додатака/скрипти.
+
+Можете поставити тајну реченицу за шифровање података у фајлу _sec.conf_. То није обавезно, али се топло препоручује, јер ако то не учините подаци се у фајл уписују као чист текст.
+
+----
+/secure passphrase ово је моја тајна реченица
+----
+
+[[secured_data_passphrase_on_startup]]
+===== Тајна реченица током покретања
+
+Када је тајна реченица постављена, програм WeeChat ће од вас тражити да је унесете током покретања програма (али не и током `/upgrade`).
+
+Ако користите менаџер лозинки, можете да покренете спољни програм из којег ће се прочитати лозинка, тако да не морате ручно да је уносите током покретања програма WeeChat. + На пример, са password-store (команда `pass`):
+
+----
+/set sec.crypt.passphrase_command "/usr/bin/pass show weechat/passphrase"
+----
+
+Програм може тражити да откључате свој GPG кључ или да унесете другу тајну реченицу како би могао да прочита тајну. Програм WeeChat ће сачекати да команда заврши своје извршавање и прочитаће тајну реченицу са стандардног излаза (она мора бити у првој линији, без икаквих додатних карактера). + Ако излаз не садржи тајну реченицу, или ако је она погрешна, програм WeeChat ће онда од вас тражити да је унесете.
+
+[[secured_data_encryption]]
+===== Шифрирање
+
+Шифрирање података се ради у 3 корака:
+
+. Извођење кључа из тајне реченица (уз необавезну со).
+. Израчунавање хеша података који треба да се шифрирају.
+. Шифрирање хеша + података (излаз је: со + шифрирани хеш/подаци).
+
+[NOTE]
+Блок режим шифре је _CFB_.
+
+Резултат се као хексадецимални стринг поставља у фајл _sec.conf_, на пример:
+
+----
+[data]
+__passphrase__ = on
+libera = "53B1C86FCDA28FC122A95B0456ABD79B5AB74654F21C3D099A6CCA8173239EEA59533A1D83011251F96778AC3F5166A394"
+----
+
+[[secured_data_decryption]]
+===== Дешифровање
+
+Дешифровање података се ради у 3 корака:
+
+. Извођење кључа употребом соли и тајне реченице.
+. Дешифровање хеша + података.
+. Провера да ли дешифровани хеш == хеш података.
+
+[[secured_data_manage]]
+==== Управљање обезбеђеним подацима
+
+Да бисте додали обезбеђене податке, употребите `/secure set`, на пример лозинку за _libera_ IRC сервер:
+
+----
+/secure set libera мојалозинка
+----
+
+Да би се олакшао рад, обезбеђени подаци могу да се прикажу у посебном баферу (kbd:[Alt+v] у баферу да видите вредности), једноставно извршите:
+
+----
+/secure
+----
+
+Обезбеђени подаци могу да се користе у неким опцијама које садрже приватне податке као што су лозинке, употребом формата: „${sec.data.xxx}” где је „xxx” име обезбеђених података (постављених са `/secure set xxx ...`). + За комплетну листу подржаних опција, погледајте `/help secure`.
+
+Да бисте употребили _libera_ лозинку, на пример са <<irc_sasl_authentication,SASL аутентификацијом>>:
+
+----
+/set irc.server.libera.sasl_password "${sec.data.libera}"
+----
+
+[[commands_and_options]]
+=== Команде и опције
+
+[[weechat_commands]]
+==== WeeChat команде
+
+include::includes/autogen_user_commands.sr.adoc[tag=weechat_commands]
+
+[[sec_options]]
+==== Опције за обезбеђене податке
+
+Одељци у фајлу _sec.conf_:
+
+[width="100%", cols="3m,6m,16", options="header"]
+|===
+| Одељак | Команда за контролу | Опис
+| crypt | /set sec.crypt.* | Опције за шифровање.
+| data | <<command_weechat_secure,/secure>> | Обезбеђени подаци.
+|===
+
+Опције:
+
+include::includes/autogen_user_options.sr.adoc[tag=sec_options]
+
+[[weechat_options]]
+==== WeeChat опције
+
+Одељци у фајлу _weechat.conf_:
+
+[width="100%", cols="3m,6m,16", options="header"]
+|===
+| Одељак | Команда за контролу | Опис
+| debug | <<command_weechat_debug,/debug set>> +
+ /set weechat.debug.* | Дибаг ниво, за језгро и додатке (у одељку је могуће додавање/уклањање опција).
+| startup | /set weechat.startup.* | Опције покретања програма.
+| look | /set weechat.look.* | Изглед и осећај.
+| palette | <<command_weechat_color,/color alias>> +
+ /set weechat.palette.* | Алијаси боја (у одељку је могуће додавање/уклањање опција).
+| color | /set weechat.color.* | Боје.
+| completion | /set weechat.completion.* | Опције довршавања.
+| history | /set weechat.history.* | Опције историје (команди и бафера).
+| proxy | <<command_weechat_proxy,/proxy>> +
+ /set weechat.proxy.* | Прокси опције.
+| network | /set weechat.network.* | Мрежне/SSL опције.
+| plugin | /set weechat.plugin.* | Опције додатака.
+| signal | /set weechat.signal.* | Опције сигнала.
+| bar | <<command_weechat_bar,/bar>> +
+ /set weechat.bar.* | Опције трака.
+| layout | <<command_weechat_layout,/layout>> | Распореди.
+| notify | <<command_weechat_buffer,/buffer notify>> | Нивои обавештавања за бафере (у одељку је могуће додавање/уклањање опција).
+| filter | <<command_weechat_filter,/filter>> | Филтери.
+| key | <<command_weechat_key,/key>> | Тастери у подразумеваном контексту.
+| key_search | <<command_weechat_key,/key>> | Тастери у search контексту.
+| key_cursor | <<command_weechat_key,/key>> | Тастери у cursor контексту.
+| key_mouse | <<command_weechat_key,/key>> | Тастери у mouse конексту.
+|===
+
+Опције:
+
+include::includes/autogen_user_options.sr.adoc[tag=weechat_options]
+
+[[plugins]]
+== Додаци
+
+Додатак је динамичка библиотека коју учитава програм WeeChat, написана на језику C и компајлирана. На GNU/Linux систему, фајл има „.so” екстензију, а „.dll” на систему Windows.
+
+Додаци се аутоматски учитавају током покретања програма WeeChat, а могу да се учитавају или уклањају из меморије док се програм WeeChat извршава.
+
+Важно је да се направи разлика између _додатка_ и _скрипте_: _додатак_ је бинарни фајл који се компајлира и учитава командом `/plugin`, док је _скрипта_ текст фајл који се учитава додатком као што је _python_ командом `/python`.
+
+За учитавање/уклањање из меморије можете користити команду `/plugin`, или да прикажете листу свих учитаних додатака.
+
+Када се додатак уклони из меморије, програм WeeChat уклања:
+
+* бафере
+* конфигурационе опције (опције се уписују у фајлове)
+* све куке: команде, модификатори, процес, итд.
+* инфо и инфолисте
+* hdata
+* ставке траке
+
+Примери учитавања, уклањања из меморије или приказа листе додатака:
+
+----
+/plugin load irc
+/plugin unload irc
+/plugin list
+----
+
+Ово су подразумевани додаци:
+
+[width="100%", cols="1,5", options="header"]
+|===
+| Додатак | Опис
+| алијас | Дефиниција алијаса за команде.
+| buflist | Ставка траке са листом бафера.
+| charset | Декодирање/кодирање у скуп карактера за бафере.
+| exec | Извршавање спољних команди из програма WeeChat.
+| fifo | FIFO пајп који се користи за удаљено слање команди програму WeeChat.
+| fset | Брзо постављање опција програма WeeChat и опција додатака.
+| irc | IRC чет протокол.
+| logger | Логовање бафера у фајлове.
+| релеј | Релеј података преко мреже.
+| script | Управљач скриптама.
+| python | Python API .
+| perl | Perl API скриптовања.
+| ruby | Ruby API скриптовања.
+| lua | Lua API скриптовања.
+| tcl | Tcl API скриптовања.
+| guile | Guile (scheme) API скриптовања.
+| javascript | JavaScript API скриптовања.
+| php | PHP API скриптовања.
+| spell | Провера правописа за командну линију.
+| окидач | Замена текста и извршавање команди приликом догађаја које окида програм WeeChat/додаци.
+| xfer | Пренос фајлова и директни разговор.
+|===
+
+За више информација о развоју додатака или скрипти (помоћу API), молимо вас да прочитате link:weechat_plugin_api.sr.html[WeeChat референтно упутство за API додатака] или link:weechat_scripting.sr.html[WeeChat водич за скриптовање].
+
+[[alias_plugin]]
+=== Алијас
+
+Алијас додатак вам омогућава да креирате алијасе за команде (из програма WeeChat или осталих додатака).
+
+Неки алијаси се подразумевано креирају, са именом исписаним великим словима (како би се разликовали од обичних команди); у програму WeeChat команде не разликују величину слова, тако да на пример, `/close` покреће алијас `/CLOSE`.
+
+Листа подразумеваних алијаса:
+
+include::includes/autogen_user_default_aliases.sr.adoc[tag=default_aliases]
+
+[[alias_commands]]
+==== Команде
+
+include::includes/autogen_user_commands.sr.adoc[tag=alias_commands]
+
+[[alias_options]]
+==== Опције
+
+Одељци у фајлу _alias.conf_:
+
+[width="100%", cols="3m,6m,16", options="header"]
+|===
+| Одељак | Команда за контролу | Опис
+| cmd | <<command_alias_alias,/alias>> +
+ /set alias.cmd.* | Команде за алијасе.
+| completion | <<command_alias_alias,/alias>> +
+ /set alias.completion.* | Довршавања за алијасе.
+|===
+
+[[buflist_plugin]]
+=== Buflist
+
+Buflist додатак приказује листу бафера у ставки траке која се зове „buflist” (такође су доступне још две ставке траке „buflist2” и „buflist3”). + Подразумевана трака „buflist” са овом ставком се креира током покретања програма.
+
+[[buflist_commands]]
+==== Команде
+
+include::includes/autogen_user_commands.sr.adoc[tag=buflist_commands]
+
+[[buflist_options]]
+==== Опције
+
+Одељци у фајлу _buflist.conf_:
+
+[width="100%", cols="3m,6m,16", options="header"]
+|===
+| Одељак | Команда за контролу | Опис
+| format | /set buflist.format.* | Формати који се користе за приказ листе бафера.
+| look | /set buflist.look.* | Изглед и осећај.
+|===
+
+Опције:
+
+include::includes/autogen_user_options.sr.adoc[tag=buflist_options]
+
+[[charset_plugin]]
+=== Charset
+
+Charset додатак вам омогућава да декодирате и кодирате податке употребом скупова карактера.
+
+Постоји подразумевани скуп карактера за декодирање/кодирање, као и одређени скупови карактера за бафере (или групу бафера).
+
+Овај додатак није обавезан, али се препоручује његова употреба: ако се не учита, програм WeeChat може да чита/пише само UTF-8 податке.
+
+Програм WeeChat би требало аутоматски да учитава charset додатак. Да бисте били сигурни да је учитан, покушајте следеће:
+
+----
+/charset
+----
+
+Ако се команда не пронађе, онда учитајте додатак командом:
+
+----
+/plugin load charset
+----
+
+Ако додатак не може да се пронађе, онда би требало поново да компајлирате програм WeeChat са додацима и подршком за Charset.
+
+Када се charset додатак покрене, он приказује скуп карактера терминала као и интерни скуп карактера. Скуп карактера терминала зависи од вашег локал подешавања, а интерно је UTF-8.
+
+На пример:
+
+....
+charset: терминал: ISO-8859-15, интерно: UTF-8
+....
+
+[[charset_set]]
+==== Постављање скупа карактера
+
+Ако желите да поставите глобалне скупове карактера за кодирање и декодирање, употребите команду `/set`.
+
+На пример:
+
+----
+/set charset.default.decode ISO-8859-15
+/set charset.default.encode ISO-8859-15
+----
+
+Ако се не постави глобални скуп карактера за декодирање (на пример током првог учитавања Charset додатка), он ће се аутоматски поставити на скуп карактера који користи терминал (у случају да није UTF-8), или подразумевано на _ISO-8859-1_.
+
+Подразумевана вредност за кодирање је празна, тако да се подразумевано шаље употребом интерног скупа карактера (UTF-8).
+
+Ако желите да поставите скуп карактера IRC сервера, употребите команду `/charset` у серверском баферу. Ако наведете само скуп карактера, онда ће команда поставити вредности за декодирање и кодирање.
+
+На пример:
+
+----
+/charset ISO-8859-15
+----
+
+Еквивалентно је са:
+
+----
+/charset decode ISO-8859-15
+/charset encode ISO-8859-15
+----
+
+Ако желите да поставите скуп карактера за IRC канал (или приватни разговор), употребите исте команде као за сервер, али у баферу канала (или приватног разговора).
+
+Ако желите да поставите скуп карактера за све канале/приватне разговоре на IRC серверу:
+
+----
+/set charset.encode.irc.libera ISO-8859-15
+----
+
+Да бисте видели све коришћене скупове карактера, извршите следећу команду:
+
+----
+/set charset.*
+----
+
+[[charset_troubleshooting]]
+==== Решавање проблема
+
+Ако имате било каквих проблема са скуповима карактера, молимо вас да погледате link:weechat_faq.sr.html#charset[WeeChat ЧПП / Скуп карактера].
+
+[[charset_commands]]
+==== Команде
+
+include::includes/autogen_user_commands.sr.adoc[tag=charset_commands]
+
+[[charset_options]]
+==== Опције
+
+Одељци у фајлу _charset.conf_:
+
+[width="100%", cols="3m,6m,16", options="header"]
+|===
+| Одељак | Команда за контролу | Опис
+| default | /set charset.default.* | Подразумевани скуп карактера за декодирање/кодирање.
+| decode | <<command_charset_charset,/charset decode>> +
+ /set charset.decode.* | Скуп карактера у који се декодира по баферу (у одељку је могуће додавање/уклањање опција).
+| encode | <<command_charset_charset,/charset encode>> +
+ /set charset.encode.* | Скуп карактера у који се кодира, по баферу (у одељку је могуће додавање/уклањање опција).
+|===
+
+Опције:
+
+include::includes/autogen_user_options.sr.adoc[tag=charset_options]
+
+[[exec_plugin]]
+=== Exec
+
+Команда `/exec` вам омогућава да извршите спољне команде из програма WeeChat и да локално прикажете њихов излаз, или да га пошаљете у бафер.
+
+[[exec_commands]]
+==== Команде
+
+include::includes/autogen_user_commands.sr.adoc[tag=exec_commands]
+
+[[exec_options]]
+==== Опције
+
+Одељци у фајлу _exec.conf_:
+
+[width="100%", cols="3m,6m,16", options="header"]
+|===
+| Одељак | Команда за контролу | Опис
+| command | /set exec.command.* | Опције за команде.
+| color | /set exec.color.* | Боје.
+|===
+
+Опције:
+
+include::includes/autogen_user_options.sr.adoc[tag=exec_options]
+
+[[fifo_plugin]]
+=== Fifo
+
+Програм WeeChat можете даљински да контролишете слањем команди или текста у FIFO пајп (ако је укључена опција „fifo.file.enabled”, што је подразумевано).
+
+FIFO пајп се налази у WeeChat директоријуму за време извршавања (runtime) и подразумевано се зове _weechat_fifo_12345_ (где је _12345_ id процеса програма WeeChat).
+
+Синтакса за FIFO пајп команде/текст је једно од следећих:
+
+....
+ plugin.buffer *овде иде текст или команда
+ *овде иде текст или команда
+....
+
+Неки примери:
+
+* Измена надимка на IRC серверу libera на „newnick”:
+
+----
+$ echo 'irc.server.libera */nick newnick' >/run/user/1000/weechat/weechat_fifo_12345
+----
+
+* Слање поруке на #weechat IRC канал:
+
+----
+$ echo 'irc.libera.#weechat *hello!' >/run/user/1000/weechat/weechat_fifo_12345
+----
+
+* Слање поруке у текући бафер:
+
+----
+$ echo '*здраво!' >/run/user/1000/weechat/weechat_fifo_12345
+----
+
+* Слање две команде за уклањање из меморије/поновно учитавање Python скрипти (морате да их раздвојите са „\n”):
+
+----
+$ printf '%b' '*/python unload\n*/python autoload\n' >/run/user/1000/weechat/weechat_fifo_12345
+----
+
+[[fifo_commands]]
+==== Команде
+
+include::includes/autogen_user_commands.sr.adoc[tag=fifo_commands]
+
+[[fifo_options]]
+==== Опције
+
+Одељци у фајлу _fifo.conf_:
+
+[width="100%", cols="3m,6m,16", options="header"]
+|===
+| Одељак | Команда за контролу | Опис
+| file | /set fifo.file.* | Контрола FIFO пајпа.
+|===
+
+Опције:
+
+include::includes/autogen_user_options.sr.adoc[tag=fifo_options]
+
+[[fset_plugin]]
+=== Fset
+
+Fast Set додатак приказује листу опција у баферу и помаже вам да постављате WeeChat опције и опције додатака.
+
+[[fset_commands]]
+==== Команде
+
+include::includes/autogen_user_commands.sr.adoc[tag=fset_commands]
+
+[[fset_options]]
+==== Опције
+
+Одељци у фајлу _fset.conf_:
+
+[width="100%", cols="3m,6m,16", options="header"]
+|===
+| Одељак | Команда за контролу | Опис
+| color | /set fset.color.* | Боје.
+| format | /set fset.format.* | Формати који се користе за приказ команди.
+| look | /set fset.look.* | Изглед и осећај.
+|===
+
+Опције:
+
+include::includes/autogen_user_options.sr.adoc[tag=fset_options]
+
+[[irc_plugin]]
+=== IRC
+
+IRC додатак је дизајниран за чет са другим људима преко IRC протокола.
+
+Подржава више сервера и нуди све подржане IRC команде, укључујући DCC чет и пренос фајлова (преко xfer додатка, погледајте <<xfer_plugin,Xfer додатак>>).
+
+[[irc_command_line_options]]
+==== Опције командне линије
+
+URL за један или више IRC сервера може да се зада на следећи начин:
+
+----
+irc[6][s]://[надимак[:лозинка]@]irc.пример.org[:порт][/канал][,канал[...]]
+----
+
+Пример за приступ каналима _#weechat_ и _#toto_ на серверу _irc.libera.chat_,подразумевани порт (6667), користећи надимак _nono_:
+
+----
+$ weechat irc://nono@irc.libera.chat/#weechat,#toto
+----
+
+[[irc_ssl_certificates]]
+==== SSL сертификати
+
+Када се са IRC серверима успоставља веза преко SSL, програм WeeChat подразумевано проверава да ли се вези потпуно верује.
+
+Неке опције се користе за контролу SSL везе:
+
+weechat.network.gnutls_ca_system::
+ током покретања учитава подразумеване системске сертификате којима се верује
+
+weechat.network.gnutls_ca_user::
+ додатни фајл(ови) са ауторитетима сертификата
+
+irc.server.xxx.ssl_cert::
+ Фајл SSL сертификата који се користи за аутоматску идентификацију вашег надимка (на пример CertFP на oftc, погледајте испод)
+
+irc.server.xxx.ssl_dhkey_size::
+ величина кључа који се користи током Дифи-Хелман Размене Кључева (подразумевано је: 2048)
+
+irc.server.xxx.ssl_verify::
+ провера да се SSL вези потпуно верује (подразумевано је укључено)
+
+[NOTE]
+Опција „ssl_verify” је подразумевано укључена, тако да је верификација стриктна и може да не успе, чак и када је била OK у верзијама пре 0.3.1.
+
+[[irc_connect_oftc_with_certificate]]
+===== Први пример: повезивање на oftc и провера сертификата
+
+* Увоз сертификата у командном окружењу:
+
+----
+$ mkdir -p ~/.config/weechat/ssl
+$ wget -O ~/.config/weechat/ssl/CAs.pem https://www.spi-inc.org/ca/spi-cacert.crt
+----
+
+[NOTE]
+`~/.config/weechat` морате да замените путањом до вашег WeeChat config директоријума који на пример, такође може да буде `~/.weechat`.
+
+[NOTE]
+Можете да надовежете више сертификата у фајл CAs.pem.
+
+* У програму WeeChat, када је сервер „oftc” већ додат:
+
+----
+/connect oftc
+----
+
+[[irc_connect_oftc_with_certfp]]
+===== Други пример: повезивање са oftc употребом CertFP
+
+* Креирајте сертификат у командном окружењу:
+
+----
+$ mkdir -p ~/.config/weechat/ssl
+$ cd ~/.config/weechat/ssl
+$ openssl req -nodes -newkey rsa:2048 -keyout nick.pem -x509 -days 365 -out nick.pem
+----
+
+[NOTE]
+`~/.config/weechat` морате да замените путањом до вашег WeeChat config директоријума који на пример, такође може да буде `~/.weechat`.
+
+* У програму WeeChat, када је сервер „oftc” већ додат:
+
+----
+/set irc.server.oftc.ssl_cert "${weechat_config_dir}/ssl/nick.pem"
+/connect oftc
+/msg nickserv cert add
+----
+
+За више информација, погледајте https://www.oftc.net/NickServ/CertFP
+
+[[irc_sasl_authentication]]
+==== SASL аутентификација
+
+Програм WeeChat подржава SASL аутентификацију, употребом различитих механизама:
+
+* _plain_: лозинка у чистом тексту (подразумевано)
+* _scram-sha-1_: SCRAM са SHA-1 digest алгоритмом
+* _scram-sha-256_: SCRAM са SHA-256 digest алгоритмом
+* _scram-sha-512_: SCRAM са SHA-512 digest алгоритмом
+* _ecdsa-nist256p-challenge_: изазов са јавним/приватним кључем
+* _external_: SSL сертификат са клијентске стране
+* _dh-blowfish_: blowfish шифрована лозинка (*небезбедно*, не препоручује се)
+* _dh-aes_: AES шифрована лозинка (*небезбедно*, не препоручује се)
+
+Опције за сервере су следеће:
+
+* _sasl_mechanism_: механизам који треба да се користи (погледајте изнад)
+* _sasl_timeout_: тајмаут (у секундама) за аутентификацију
+* _sasl_fail_: акција која треба да се изврши ако аутентификација не успе
+* _sasl_username_: корисничко име (надимак)
+* _sasl_password_: лозинка
+* _sasl_key_: фајл са ECC приватним кључем (за механизам _ecdsa-nist256p-challenge_)
+
+[[irc_sasl_ecdsa_nist256p_challenge]]
+===== SASL ECDSA-NIST256P-CHALLENGE
+
+Да бисте могли да се аутентификујете ECDSA-NIST256P-CHALLENGE механизмом, морате да генеришете приватни кључ (није потребна лозинка за успостављање везе).
+
+Кључ можете да генеришете следећом командом:
+
+----
+$ openssl ecparam -genkey -name prime256v1 -out ~/.config/weechat/ecdsa.pem
+----
+
+[NOTE]
+`~/.config/weechat` морате да замените путањом до вашег WeeChat config директоријума који на пример, такође може да буде `~/.weechat`.
+
+Набавите јавни кључ (кодиран у base64) следећом командом:
+
+----
+$ openssl ec -noout -text -conv_form compressed -in ~/.config/weechat/ecdsa.pem | grep '^pub:' -A 3 | tail -n 3 | tr -d ' \n:' | xxd -r -p | base64
+----
+
+Повежите се са сервером, идентификујте се (на пример са „nickserv identify”) и поставите свој јавни кључ у налог, користећи nickserv (замените base64 вредност са вредношћу вашег јавног кључа):
+
+----
+/connect libera
+/msg nickserv identify ваша_лозинка
+/msg nickserv set pubkey Av8k1FOGetUDq7sPMBfufSIZ5c2I/QYWgiwHtNXkVe/q
+----
+
+Подесите SASL опције за сервер:
+
+----
+/set irc.server.libera.sasl_mechanism ecdsa-nist256p-challenge
+/set irc.server.libera.sasl_username "ваш_надимак"
+/set irc.server.libera.sasl_key "${weechat_config_dir}/ecdsa.pem"
+----
+
+Поново успоставите везу са сервером:
+
+----
+/reconnect libera
+----
+
+[[irc_tor_sasl]]
+==== Повезивање преко TOR и SASL
+
+Неки сервери подржавају и везе са TOR (https://www.torproject.org/), мрежом виртуелних тунела који омогућавају људима и групама да унапреде своју приватност и безбедност на Интернету.
+
+Најпре морате да инсталирате TOR. За Debian (и изведене из њега):
+
+----
+$ sudo apt-get install tor
+----
+
+У програму WeeChat морате да додате socks5 прокси за TOR сервис (имехоста/IP и порт зависе од ваше TOR конфигурације):
+
+----
+/proxy add tor socks5 127.0.0.1 9050
+----
+
+Додајте сада нови сервер (замените име сервера „irc-tor” и адресу са важећим вредностима):
+
+----
+/server add irc-tor ово.је.адреса.onion
+----
+
+Поставите прокси за TOR:
+
+----
+/set irc.server.irc-tor.proxy "tor"
+----
+
+Поставите SASL аутентификацију са ECDSA-NIST256P-CHALLENGE (погледајте поглавље <<irc_sasl_ecdsa_nist256p_challenge,SASL ECDSA-NIST256P-CHALLENGE>> у вези генерисања приватног кључа):
+
+----
+/set irc.server.irc-tor.sasl_mechanism ecdsa-nist256p-challenge
+/set irc.server.irc-tor.sasl_username "ваш_надимак"
+/set irc.server.irc-tor.sasl_key "${weechat_config_dir}/ecdsa.pem"
+----
+
+И коначно, успоставите везу са сервером:
+
+----
+/connect irc-tor
+----
+
+[[irc_smart_filter_join_part_quit]]
+==== Паметни филтер за join/part/quit поруке
+
+За филтрирање join/part/quit порука када надимак на каналу ништа није рекао у последњих X минута, можете употребити паметни филтер.
+
+Паметни филтер је подразумевано укључен, али морате да додате филтер који скрива линије у баферу, на пример:
+
+----
+/filter add irc_smart * irc_smart_filter *
+----
+
+Можете да креирате филтер само за један канал, или за канале који почињу на исто име (погледајте `/help filter`):
+
+----
+/filter add irc_smart_weechat irc.libera.#weechat irc_smart_filter *
+/filter add irc_smart_weechats irc.libera.#weechat* irc_smart_filter *
+----
+
+Следећим опцијама можете да сакријете само join или part/quit поруке:
+
+----
+/set irc.look.smart_filter_join on
+/set irc.look.smart_filter_quit on
+----
+
+Можете да поставите паузу (у минутима):
+
+----
+/set irc.look.smart_filter_delay 5
+----
+
+Ако надимак није ништа рекао у последњих 5 минута, његове join и/или part/quit поруке ће бити скривене на каналу.
+
+[[irc_ctcp_replies]]
+==== CTCP одговори
+
+CTCP одговори могу да се прилагоде, или неки CTCP упити могу да се блокирају (да се не пошаље одговор).
+
+На пример, ако желите да прилагодите одговор на CTCP „VERSION”, употребите следећу команду:
+
+----
+/set irc.ctcp.version "Користим WeeChat $version, одличан је!"
+----
+
+Ако желите да блокирате CTCP „VERSION” (да се не пошаље одговор на овај упит), онда поставите празан стринг:
+
+----
+/set irc.ctcp.version ""
+----
+
+Могу да се прилагоде чак и непознати CTCP, можете на пример да одговорите на CTCP „BLABLA”:
+
+----
+/set irc.ctcp.blabla "Ево мог одговора на CTCP BLABLA"
+----
+
+CTCP може да се прилагоди само за један сервер, употребом његовог интерног имена испред CTCP имена:
+
+----
+/set irc.ctcp.libera.version "WeeChat $version (за libera)"
+----
+
+Ако желите да вратите стандардни CTCP одговор, уклоните опцију:
+
+----
+/unset irc.ctcp.version
+----
+
+У стринговима је могућа употреба следећих кодова и они се аутоматски развијају када програм WeeChat одговара на CTCP:
+
+[width="100%", cols="2l,4,8", options="header"]
+|===
+| Кôд | Опис | Вредност/пример
+| $clientinfo | Листа подржаних CTCP | `+ACTION DCC CLIENTINFO FINGER PING SOURCE TIME USERINFO VERSION+`
+| $version | Верзија програма WeeChat | `+0.4.0-dev+`
+| $versiongit | WeeChat верзија + git верзија ^(1)^ | `+0.4.0-dev (git: v0.3.9-104-g7eb5cc4)+`
+| $git | Git верзија ^(1)^ | `+v0.3.9-104-g7eb5cc4+`
+| $compilation | Датум компајлирања програма WeeChat | `+Dec 16 2012+`
+| $osinfo | Инфо о ОС | `+Linux 2.6.32-5-amd64 / x86_64+`
+| $site | WeeChat вебсајт | `+https://weechat.org/+`
+| $download | WeeChat сајт, страна за преузимање | `+https://weechat.org/download+`
+| $time | Текући датум/време | `+Sun, 16 Dec 2012 10:40:48 +0100+`
+| $username | Корисничко име на IRC серверу | `+name+`
+| $realname | Реално име на IRC серверу | `+John Doe+`
+|===
+
+[NOTE]
+^(1)^ Git верзија је излаз команде `git describe`. Позната је само ако је програм WeeChat компајлиран унутар git репозиторијума и ако је git инсталиран.
+
+Ако CTCP опције нису дефинисане (што је подразумевано), CTCP одговори су следећи:
+
+[width="100%", cols="2,4,8", options="header"]
+|===
+| CTCP | Формат одговора | Пример
+| CLIENTINFO | `+$clientinfo+` | `+ACTION DCC CLIENTINFO FINGER PING SOURCE TIME USERINFO VERSION+`
+| FINGER | `+WeeChat $versiongit+` | `+WeeChat 0.4.0-dev (git: v0.3.9-104-g7eb5cc4)+`
+| SOURCE | `+$download+` | `+https://weechat.org/download+`
+| TIME | `+$time+` | `+нед, 16 дец 2012 10:40:48 +0100+`
+| USERINFO | `+$username ($realname)+` | `+име (Пера Перић)+`
+| VERSION | `+WeeChat $versiongit ($compilation)+` | `+WeeChat 0.4.0-dev (git: v0.3.9-104-g7eb5cc4) (Dec 16 2012)+`
+|===
+
+[[irc_target_buffer]]
+==== Циљни бафер за IRC поруке
+
+Могуће је прилагођавање циљног бафера за IRC поруке (бафер који се користи за приказ порука) опцијама `+irc.msgbuffer.*+`.
+
+За неке IRC поруке (погледајте листу испод), можете да користите вредност:
+
+current::
+ текући бафер (ако је IRC бафер, или подразумевано у серверском баферу)
+
+private::
+ приватни бафер за надимак, или текући/серверски бафер ако се тај не пронађе (сагласно са опцијом _irc.look.msgbuffer_fallback_)
+
+server::
+ серверски бафер
+
+weechat::
+ Бафер „језгра” програма WeeChat
+
+Када опција није постављена (подразумевано), програм WeeChat бира погодан бафер, обично је то серверски или бафер канала.
+
+Непотпуна листа IRC порука или алијаса које можете да прилагодите:
+
+[width="100%", cols="^1m,^3m,8", options="header"]
+|===
+| порука | алијас | опис
+| error | | грешка
+| invite | | позвани сте на канал
+| join | | приступ
+| kick | | избацивање
+| kill | | убијање
+| mode | | режим
+| notice | | обавештење
+| part | | одлазак
+| quit | | напуштање
+| topic | | тема
+| wallops | | wallops
+| | ctcp | ctcp (послата или примљена, у privmsg или notice поруци)
+| 221 | | стринг режима корисника
+| 275 | whois | whois (безбедна веза)
+| 301 | whois | whois (одсутан)
+| 303 | | ison
+| 305 | unaway | вратио се
+| 306 | away | одсутан
+| 307 | whois | whois (регистровани надимак)
+| 310 | whois | whois (режим помоћи)
+| 311 | whois | whois (корисник)
+| 312 | whois | whois (сервер)
+| 313 | whois | whois (оператор)
+| 314 | whowas | whowas
+| 315 | who | who (крај)
+| 317 | whois | whois (неактиван)
+| 318 | whois | whois (крај)
+| 319 | whois | whois (канали)
+| 320 | whois | whois (идентификован корисник)
+| 321 | list | list (старт)
+| 322 | list | list (канал)
+| 323 | list | list (крај)
+| 326 | whois | whois (има oper privs)
+| 327 | whois | whois (хост)
+| 328 | | URL канала
+| 329 | | датум креирања канала
+| 330 | whois | whois (пријављен као)
+| 331 | | нема теме за канал
+| 332 | | тема канала
+| 333 | | инфо о теми
+| 335 | whois | whois (да ли је бот)
+| 338 | whois | whois (хост)
+| 341 | | позивница
+| 343 | whois | whois (је opered као)
+| 344 | reop | reop канала
+| 345 | reop | reop канала (крај)
+| 346 | invitelist | листа позваних
+| 347 | invitelist | листа позваних (крај)
+| 348 | exceptionlist | листа изузетака
+| 349 | exceptionlist | листа изузетака (крај)
+| 351 | | верзија сервера
+| 352 | who | who
+| 353 | names | листа корисника на каналу
+| 366 | names | крај /names листе
+| 367 | banlist | листа забрањених
+| 368 | banlist | крај листе забрањених
+| 369 | whowas | whowas (крај)
+| 378 | whois | whois (повезује се са)
+| 379 | whois | whois (употребом режима)
+| 401 | whois | нема таквог надимка/канала
+| 402 | whois | нема таквог сервера
+| 432 | | погрешан надимак
+| 433 | | надимак се већ користи
+| 438 | | нисте ауторизовани да промените надимак
+| 671 | whois | whois (безбедна веза)
+| 728 | quietlist | листа ућутканих
+| 729 | quietlist | крај листе ућутканих
+| 732 | monitor | листа надимака који се прате
+| 733 | monitor | листа надимака који се прате (крај)
+| 901 | | сада сте пријављени
+|===
+
+И остале нумеричке команде могу да се прилагоде.
+
+Испред поруке може да стоји име сервера како би била специфична за одређени irc сервер (на пример: `libera.whois`).
+
+Неки примери:
+
+* Приказ резултата команде `/whois` у приватном баферу:
+
+----
+/set irc.msgbuffer.whois private
+----
+
+* Враћање подразумеваног бафера за whois (серверски бафер):
+
+----
+/unset irc.msgbuffer.whois
+----
+
+* Приказивање позивнице у текућем баферу, само за „libera” сервер:
+
+----
+/set irc.msgbuffer.libera.invite current
+----
+
+* Приказивање „303” (ison) поруке у баферу „језгра” програма WeeChat:
+
+----
+/set irc.msgbuffer.303 weechat
+----
+
+[[irc_commands]]
+==== Команде
+
+include::includes/autogen_user_commands.sr.adoc[tag=irc_commands]
+
+[[irc_options]]
+==== Опције
+
+Одељци у фајлу _irc.conf_:
+
+[width="100%", cols="3m,6m,16", options="header"]
+|===
+| Одељак | Команда за контролу | Опис
+| look | /set irc.look.* | Изглед и осећај.
+| color | /set irc.color.* | Боје.
+| network | /set irc.network.* | Мрежне опције.
+| msgbuffer | /set irc.msgbuffer.* | <<irc_target_buffer,Циљни бафер за IRC поруке>> (у одељку је могуће додавање/уклањање опција).
+| ctcp | /set irc.ctcp.* | <<irc_ctcp_replies,CTCP одговори>> (у одељку је могуће додавање/уклањање опција).
+| ignore | <<command_irc_ignore,/ignore>> | Игнорисање људи.
+| server_default | /set irc.server_default.* | Подразумеване вредности за сервере (користе се када у серверу није дефинисана опција).
+| server | <<command_irc_server,/server>> +
+ /set irc.server.* | Сервери.
+|===
+
+Опције:
+
+include::includes/autogen_user_options.sr.adoc[tag=irc_options]
+
+[[logger_plugin]]
+=== Logger
+
+Logger додатак вам омогућава да чувате садржај бафера у фајлове, и нуди опције којима подешавате шта се и како чува.
+
+[[logger_log_levels]]
+==== Лог нивои
+
+Логовање се врши са нивоом за сваки бафер. Подразумевани ниво је 9 (логују се све поруке које су приказане у баферу). Ниво можете да промените само за један бафер, или за групу бафера.
+
+Могући нивои су од 0 до 9. Нула значи „ништа се не логује”, а 9 значи „логују се све поруке”.
+
+Додаци користе различите нивое за приказане поруке. IRC додатак користи следеће нивое:
+
+* ниво 1: порука од корисника (на каналу или приватна)
+* ниво 2: измена надимка (вашег или неког другог)
+* ниво 3: било која серверска порука (осим join/part/quit)
+* ниво 4: join/part/quit серверска порука
+
+Тако да ако за IRC канал поставите ниво 3, програм WeeChat ће логовати све поруке осим join/part/quit.
+
+Неки примери:
+
+* Постављање нивоа 3 за IRC канал #weechat:
+
+----
+/set logger.level.irc.libera.#weechat 3
+----
+
+* Постављање нивоа 3 за libera серверски бафер:
+
+----
+/set logger.level.irc.server.libera 3
+----
+
+* Постављање нивоа 3 за све канале на серверу libera:
+
+----
+/set logger.level.irc.libera 3
+----
+
+* Постављање нивоа 2 за све IRC бафере:
+
+----
+/set logger.level.irc 2
+----
+
+[[logger_filenames_masks]]
+==== Маске имена фајлова
+
+За сваки бафер можете да дефинишете маску имена фајла, па да употребите локалне променљиве бафера за изградњу имена фајла. Да бисте видели доступне локалне променљиве текућег бафера:
+
+----
+/buffer listvar
+----
+
+Masks will be matched on options in descending order of specificity on `logger.mask.$plugin.*`, with `logger.file.mask` as fallback option.
+
+На пример, у баферу „irc.libera.#weechat”, програм WeeChat ће потражити маску са именом опције, по следећем редоследу:
+
+----
+logger.mask.irc.libera.#weechat
+logger.mask.irc.libera
+logger.mask.irc
+logger.file.mask
+----
+
+Ово значи да можете имати маске које су специфичне за одређене IRC сервере („logger.mask.irc.libera”) или за додатак („logger.mask.irc”).
+
+[[logger_files_by_date]]
+===== Лог фајлови по датуму
+
+Ако желите да се лог фајлови креирају по датуму, у маски можете да употребите спецификаторе датума/времена (за формате, погледајте `man strftime`), на пример:
+
+----
+/set logger.file.mask "%Y/%m/$plugin.$name.weechatlog"
+----
+
+Имаћете следеће фајлове:
+
+....
+~/.local/share/weechat
+└── logs
+ ├── 2010
+ │ ├── 11
+ │ │ ├── irc.server.libera.weechatlog
+ │ │ └── irc.libera.#weechat.weechatlog
+ │ └── 12
+ │ ├── irc.server.libera.weechatlog
+ │ └── irc.libera.#weechat.weechatlog
+ ├── 2011
+ │ ├── 01
+ │ │ ├── irc.server.libera.weechatlog
+ │ │ └── irc.libera.#weechat.weechatlog
+ │ ├── 02
+ ...
+....
+
+[[logger_irc_files_by_server_channel]]
+===== IRC лог фајлови по серверу и каналу
+
+Ако желите један директоријум по IRC серверу и један фајл по каналу у њему:
+
+----
+/set logger.mask.irc "irc/$server/$channel.weechatlog"
+----
+
+Имаћете следеће фајлове:
+
+....
+~/.local/share/weechat
+└── logs
+ └── irc
+ ├── libera
+ │ ├── libera.weechatlog
+ │ ├── #weechat.weechatlog
+ │ └── #mychan.weechatlog
+ ├── oftc
+ │ ├── oftc.weechatlog
+ │ ├── #chan1.weechatlog
+ │ └── #chan2.weechatlog
+ ...
+....
+
+[[logger_commands]]
+==== Команде
+
+include::includes/autogen_user_commands.sr.adoc[tag=logger_commands]
+
+[[logger_options]]
+==== Опције
+
+Одељци у фајлу _logger.conf_:
+
+[width="100%", cols="3m,6m,16", options="header"]
+|===
+| Одељак | Команда за контролу | Опис
+| look | /set logger.look.* | Изглед и осећај.
+| color | /set logger.color.* | Боје.
+| file | /set logger.file.* | Опције за лог фајлове.
+| level | /set logger.level.* | Лог ниво по баферу (у одељку је могуће додавање/уклањање опција).
+| mask | /set logger.mask.* | Маска имена фајла по баферу (у одељку је могуће додавање/уклањање опција).
+|===
+
+Опције:
+
+include::includes/autogen_user_options.sr.adoc[tag=logger_options]
+
+[[relay_plugin]]
+=== Релеј
+
+Релеј додатак се користи за релеј података преко мреже, употребом различитих протокола:
+
+* _irc_: IRC прокси: користи се за дељење веза са IRC серверима са једним или више других клијената
+* _weechat_: протокол који користе удаљени интерфејси за приказ и интеракцију са програмом WeeChat, на пример:
+** Glowing Bear (HTML5): https://www.glowing-bear.org/
+** QWeeChat (Qt): https://weechat.org/download
+** WeeChat-Android (Android): https://github.com/ubergeek42/weechat-android
+** weechat.el (Emacs): https://github.com/the-kenny/weechat.el
+** WeeCloud (JavaScript): https://github.com/eirikb/weecloud
+
+[[relay_password]]
+==== Лозинка
+
+Топло се препоручује постављање лозинке за релеј следећим командама:
+
+----
+/secure set relay мојалозинка
+/set relay.network.password "${sec.data.relay}"
+----
+
+Ова лозинка се користи и за _irc_ и за _weechat_ протокол.
+
+[[relay_totp]]
+==== TOTP
+
+TOTP (Time-based One-Time Password) може уз лозинку да се користи као секундарни фактор аутентификације за _weechat_ протокол.
+
+Ово није обавезно, мада повећава ниво безбедности.
+
+једнократне лозинке могу да се генеришу апликацијама, на пример:
+
+* FreeOTP: https://play.google.com/store/apps/details?id=org.fedorahosted.freeotp[Android], https://itunes.apple.com/fr/app/freeotp-authenticator/id872559395[iOS] (https://freeotp.github.io/[вебсајт])
+* Google Authenticator: https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2[Android], https://itunes.apple.com/fr/app/google-authenticator/id388497605[iOS]
+
+TOTP тајна мора да се постави у програму WeeChat и у апликацији која се користи за генерисање једнократних лозинки.
+
+То мора бити стринг кодиран у base32, само са словима и цифрама од 2 до 7, на пример:
+
+----
+/secure set relay_totp тајналозинкаbase32
+/set relay.network.totp_secret "${sec.data.relay_totp}"
+----
+
+[[relay_ssl]]
+==== SSL
+
+SSL можете да користите креирањем сертификата и приватног кључа и употребом префикса „ssl.” у имену протокола.
+
+Подразумевана путања до сертификата/кључа је дефинисана опцијом <<option_relay.network.ssl_cert_key,relay.network.ssl_cert_key>>.
+
+Сертификат и приватни кључ можете да креирате следећим командама:
+
+----
+$ mkdir -p ~/.config/weechat/ssl
+$ cd ~/.config/weechat/ssl
+$ openssl req -nodes -newkey rsa:2048 -keyout relay.pem -x509 -days 365 -out relay.pem
+----
+
+[NOTE]
+`~/.config/weechat` морате да замените путањом до вашег WeeChat config директоријума који на пример, такође може да буде `~/.weechat`.
+
+Ако се програм WeeChat већ извршава, сертификат и приватни кључ можете поново да учитате командом:
+
+----
+/relay sslcertkey
+----
+
+[[relay_irc_proxy]]
+==== IRC прокси
+
+Релеј додатак може да се понаша као IRC прокси: симулираће IRC сервер, па можете да се повежете са програмом WeeChat помоћу било ког другог IRC клијента (укључујући и сам WeeChat).
+
+Можете да дефинишете по један порт за сваки IRC сервер, или један генерички за све сервере.
+
+Када се користи један порт за све сервере, клијент мора да пошаље интерно име сервера у IRC команди „PASS”, у следећем формату (погледајте пример испод):
+
+----
+PASS сервер:лозинка
+----
+
+Пример: IRC прокси са SSL за било који сервер (клијент ће изабрати):
+
+----
+/relay add ssl.irc 8000
+----
+
+Пример: IRC прокси без SSL само за сервер „libera”:
+
+----
+/relay add irc.libera 8000
+----
+
+Сада можете да успоставите везу на порту 8000 помоћу било ког IRC клијента употребом лозинке „мојалозинка” (или „libera:мојалозинка” ако у релеју није био наведен ниједан сервер).
+
+На пример, ако као IRC клијент користите програм WeeChat, а сервер се зове „relay” и релеј лозинка је „secret”, можете да поставите лозинку следећим командама:
+
+----
+/secure set relay_libera libera:secret
+/set irc.server.relay.password "${sec.data.relay_libera}"
+----
+
+[[relay_weechat_protocol]]
+==== WeeChat протокол
+
+Релеј додатак може да шаље податке удаљеном интерфејсу користећи WeeChat протокол.
+
+Можете да се повежете употребом удаљеног интерфејса, погледајте листу <<relay_plugin,релеј додатак>>.
+
+[IMPORTANT]
+Сам програм WeeChat НЕ може да се повеже на други програм WeeChat преко овог протокола.
+
+На пример:
+
+----
+/relay add weechat 9000
+----
+
+Сада можете да се повежете са удаљеног интерфејса преко порта 9000 користећи лозинку „мојалозинка”.
+
+[[relay_websocket]]
+==== ВебСокет
+
+Релеј додатак подржава ВебСокет протокол (https://tools.ietf.org/html/rfc6455[RFC 6455]) за све протоколе.
+
+ВебСокет руковање се аутоматски детектује и ако се у руковању пронађу одговарајућа заглавља и ако је порекло дозвољено (погледајте опцију <<option_relay.network.websocket_allowed_origins,relay.network.websocket_allowed_origins>>), сокет постаје спреман за WebSocket.
+
+ВебСокет може да се отвори у HTML5 једном једином линијом JavaScript кода:
+
+[source, js]
+----
+websocket = new WebSocket("ws://server.com:9000/weechat");
+----
+
+Порт (9000 у примеру) је порт који је дефинисан у Релеј додатку. URI увек мора да се завршава са „/weechat” (и за _irc_ и за _weechat_ протокол).
+
+[[relay_unix_socket]]
+==== UNIX доменски сокети
+
+Ако у `/relay add` команди употребите опцију протокола „unix”, можете да ослушкујете било којим протоколом на UNIX доменском сокету на задатој путањи. На пример:
+
+----
+/relay add unix.weechat ${weechat_runtime_dir}/relay_socket
+----
+
+Ово омогућава да се клијенти повежу користећи weechat протокол на _/run/user/1000/weechat/relay_socket_. Врло је корисно за дозвољавање SSH прослеђивања релеј клијентима, када други портови не могу да се отворе.
+
+Употребом OpenSSH:
+
+----
+$ ssh -L 9000:.weechat/relay_socket корисник@имехоста
+----
+
+Ово преусмерава локалне релеј клијенте који се повезују на порт 9000 на инстанцу програма WeeChat која се извршава на машини „имехоста”.
+
+[[relay_commands]]
+==== Команде
+
+include::includes/autogen_user_commands.sr.adoc[tag=relay_commands]
+
+[[relay_options]]
+==== Опције
+
+Одељци у фајлу _relay.conf_:
+
+[width="100%", cols="3m,6m,16", options="header"]
+|===
+| Одељак | Команда за контролу | Опис
+| look | /set relay.look.* | Изглед и осећај.
+| color | /set relay.color.* | Боје.
+| network | /set relay.network.* | Мрежне опције.
+| irc | /set relay.irc.* | Опције специфичне за irc протокол (irc прокси).
+| port | <<command_relay_relay,/relay add>> +
+ /set relay.port.* | Портови који се користе за релеј (irc и weechat протоколи) (у одељку је могуће додавање/уклањање опција).
+|===
+
+Опције:
+
+include::includes/autogen_user_options.sr.adoc[tag=relay_options]
+
+[[scripts_plugins]]
+=== Скрипте
+
+Програм WeeChat нуди 8 додатака за скриптовање: Python, Perl, Ruby, Lua, Tcl, Guile (scheme), JavaScript и PHP. Ови додаци могу да учитају, изврше и уклоне из меморије скрипте за ове језике.
+
+Још један додатак, под именом „script” је менаџер скрипти и користи се за учитавање/уклањање из меморије скрипти на било ком језику, и инсталацију/брисање скрипти WeeChat репозиторијума, које су видљиве на следећој URL адреси: https://weechat.org/scripts
+
+За више информација о функцијама које постоје у API, молимо вас да прочитате link:weechat_plugin_api.sr.html[WeeChat водич за скриптовање].
+
+[[script_commands]]
+==== Script команде
+
+include::includes/autogen_user_commands.sr.adoc[tag=script_commands]
+
+[[python_commands]]
+==== Python команде
+
+include::includes/autogen_user_commands.sr.adoc[tag=python_commands]
+
+[[perl_commands]]
+==== Perl команде
+
+include::includes/autogen_user_commands.sr.adoc[tag=perl_commands]
+
+[[ruby_commands]]
+==== Ruby команде
+
+include::includes/autogen_user_commands.sr.adoc[tag=ruby_commands]
+
+[[lua_commands]]
+==== Lua команде
+
+include::includes/autogen_user_commands.sr.adoc[tag=lua_commands]
+
+[[tcl_commands]]
+==== Tcl команде
+
+include::includes/autogen_user_commands.sr.adoc[tag=tcl_commands]
+
+[[guile_commands]]
+==== Guile команде
+
+include::includes/autogen_user_commands.sr.adoc[tag=guile_commands]
+
+[[javascript_commands]]
+==== JavaScript команде
+
+include::includes/autogen_user_commands.sr.adoc[tag=javascript_commands]
+
+[[php_commands]]
+==== PHP команде
+
+include::includes/autogen_user_commands.sr.adoc[tag=php_commands]
+
+[[script_options]]
+==== Script опције
+
+Одељци у фајлу _script.conf_:
+
+[width="100%", cols="3m,6m,16", options="header"]
+|===
+| Одељак | Команда за контролу | Опис
+| look | /set script.look.* | Изглед и осећај.
+| color | /set script.color.* | Боје.
+| scripts | /set script.scripts.* | Опције за преузимање скрипти.
+|===
+
+Опције:
+
+include::includes/autogen_user_options.sr.adoc[tag=script_options]
+
+[[python_options]]
+==== Python опције
+
+Одељци у фајлу _python.conf_:
+
+[width="100%", cols="3m,6m,16", options="header"]
+|===
+| Одељак | Команда за контролу | Опис
+| look | /set python.look.* | Изглед и осећај.
+|===
+
+Опције:
+
+include::includes/autogen_user_options.sr.adoc[tag=python_options]
+
+[[perl_options]]
+==== Perl опције
+
+Одељци у фајлу _perl.conf_:
+
+[width="100%", cols="3m,6m,16", options="header"]
+|===
+| Одељак | Команда за контролу | Опис
+| look | /set perl.look.* | Изглед и осећај.
+|===
+
+Опције:
+
+include::includes/autogen_user_options.sr.adoc[tag=perl_options]
+
+[[ruby_options]]
+==== Ruby опције
+
+Одељци у фајлу _ruby.conf_:
+
+[width="100%", cols="3m,6m,16", options="header"]
+|===
+| Одељак | Команда за контролу | Опис
+| look | /set ruby.look.* | Изглед и осећај.
+|===
+
+Опције:
+
+include::includes/autogen_user_options.sr.adoc[tag=ruby_options]
+
+[[lua_options]]
+==== Lua опције
+
+Одељци у фајлу _lua.conf_:
+
+[width="100%", cols="3m,6m,16", options="header"]
+|===
+| Одељак | Команда за контролу | Опис
+| look | /set lua.look.* | Изглед и осећај.
+|===
+
+Опције:
+
+include::includes/autogen_user_options.sr.adoc[tag=lua_options]
+
+[[tcl_options]]
+==== Tcl опције
+
+Одељци у фајлу _tcl.conf_:
+
+[width="100%", cols="3m,6m,16", options="header"]
+|===
+| Одељак | Команда за контролу | Опис
+| look | /set tcl.look.* | Изглед и осећај.
+|===
+
+Опције:
+
+include::includes/autogen_user_options.sr.adoc[tag=tcl_options]
+
+[[guile_options]]
+==== Guile опције
+
+Одељци у фајлу _guile.conf_:
+
+[width="100%", cols="3m,6m,16", options="header"]
+|===
+| Одељак | Команда за контролу | Опис
+| look | /set guile.look.* | Изглед и осећај.
+|===
+
+Опције:
+
+include::includes/autogen_user_options.sr.adoc[tag=guile_options]
+
+[[javascript_options]]
+==== Javascript опције
+
+Одељци у фајлу _javascript.conf_:
+
+[width="100%", cols="3m,6m,16", options="header"]
+|===
+| Одељак | Команда за контролу | Опис
+| look | /set javascript.look.* | Изглед и осећај.
+|===
+
+Опције:
+
+include::includes/autogen_user_options.sr.adoc[tag=javascript_options]
+
+[[php_options]]
+==== PHP опције
+
+Одељци у фајлу _php.conf_:
+
+[width="100%", cols="3m,6m,16", options="header"]
+|===
+| Одељак | Команда за контролу | Опис
+| look | /set php.look.* | Изглед и осећај.
+|===
+
+Опције:
+
+include::includes/autogen_user_options.sr.adoc[tag=php_options]
+
+[[spell_plugin]]
+=== Spell
+
+Spell додатак вам омогућава да проверите правопис у командној линији. У баферу можете да користите више језика.
+
+Подразумевано је провера правописа искључена и стање активности може да се мења тастером kbd:[Alt+s].
+
+[[spell_dictionaries]]
+==== Речници
+
+Пре него што будете могли да користите проверу правописа, морате да дефинишете речнике, или глобално, или посебно за бафере.
+
+У исто време можете да користити више речника: програм WeeChat ће проверавати речи у свим речницима.
+
+На пример, ако желите да користите енглески и француски:
+
+----
+/set spell.check.default_dict "en,fr"
+----
+
+Могуће је да у одређеном баферу користите различити речник, на пример, на немачком каналу:
+
+----
+/spell setdict de
+----
+
+Можете такође да наведете и речник за групу бафера, на пример енглески на свим каналима IRC сервера libera:
+
+----
+/set spell.dict.irc.libera en
+----
+
+За више информација, погледајте команду <<command_spell_spell,/spell>>.
+
+[[spell_speller_options]]
+==== Опције модула за проверу правописа
+
+Опције модула за проверу правописа могу да се дефинишу додавањем опција у одељак „option” aspell конфигурације.
+
+Име опције је aspell конфигурациона опција. Листа опција може да се пронађе у командном окружењу помоћу следеће команде:
+
+----
+$ aspell config
+----
+
+На пример, ако желите да укључите опцију „ignore-case”:
+
+----
+/set spell.option.ignore-case "true"
+----
+
+[[spell_suggestions]]
+==== Предлози
+
+Предлози се приказују у ставки траке под именом „spell_suggest”. Број предлога се поставља у опцији _spell.check.suggestions_.
+
+Да бисте укључили предлоге морате поставити вредност опције _spell.check.suggestions_ на цео број ≥ 0 и да додате ставку траке „spell_suggest” у неку траку, као на пример у _status_.
+
+Пример предлога са енглеским речником (`en`):
+
+....
+│[12:55] [6] [irc/libera] 3:#test(+n){4} [print,prone,prune] │
+│[@Flashy] prinr █ │
+└─────────────────────────────────────────────────────────────────────────────────┘
+....
+
+Пример предлога са енглеским и француским речницима (`en,fr`):
+
+....
+│[12:55] [6] [irc/libera] 3:#test(+n){4} [print,prone,prune/prime,primer,primé] │
+│[@Flashy] prinr █ │
+└─────────────────────────────────────────────────────────────────────────────────┘
+....
+
+[[spell_commands]]
+==== Команде
+
+include::includes/autogen_user_commands.sr.adoc[tag=spell_commands]
+
+[[spell_options]]
+==== Опције
+
+Одељци у фајлу _spell.conf_:
+
+[width="100%", cols="3m,6m,16", options="header"]
+|===
+| Одељак | Команда за контролу | Опис
+| color | /set spell.color.* | Боје.
+| check | /set spell.check.* | Опције за контролу провере правописа.
+| dict | <<command_spell_spell,/spell setdict>> +
+ /set spell.dict.* | Речници који се користе у баферу (у одељку је могуће додавање/уклањање опција).
+| look | /set spell.look.* | Изглед и осећај.
+| option | /set spell.option.* | <<spell_speller_options,Опције модула проверу правописа>> (у одељку је могуће додавање/уклањање опција).
+|===
+
+Опције:
+
+include::includes/autogen_user_options.sr.adoc[tag=spell_options]
+
+[[trigger_plugin]]
+=== Окидач
+
+Окидач је Швајцарски војни нож програма WeeChat: може да ухвати многе ствари (сигнал, модификатор, испис, итд.), измени садржај података, и изврши једну или више команди. Ако желите да спречите покретање окидача у неким околностима, можете употребити услов.
+
+За коришћење окидача је неопходно познавање начина на који функционишу сигнали, модификатори, ... Стога је пожељно да прочитате link:weechat_plugin_api.sr.html#hooks[WeeChat референтни приручник API додатака / Куке].
+
+[[trigger_default]]
+==== Подразумевани окидачи
+
+Програм WeeChat подразумевано креира 5 окидача који могу да се искључе, ажурирају или обришу:
+
+* _beep_ окидач за обавештења
+* четири остала окидача за скривање лозинки на екрану
+
+Листа подразумеваних окидача:
+
+[width="100%", cols="5m,3,22", options="header"]
+|===
+| Име | Кука | Опис
+
+| beep | испис |
+ Звучни сигнал у случају истакнуте/приватне поруке.
+
+| cmd_pass | модификатор |
+ Сакрива лозинку у командама:
+ `pass:[/msg nickserv id\|identify\|set password\|ghost\|release\|regain\|recover]`,
+ `pass:[/oper]`,
+ `pass:[/quote pass]`,
+ `pass:[/secure passphrase\|decrypt\|set]`.
+
+| cmd_pass_register | модификатор |
+ Сакрива лозинку у команди `pass:[/msg nickserv register]`.
+
+| msg_auth | модификатор |
+ Сакрива лозинку у IRC auth поруци која се приказује (порука која се прими од
+ сервера након што корисник зада команду).
+
+| server_pass | модификатор |
+ Сакрива лозинку сервера у командама `/server` и `/connect`.
+|===
+
+[[trigger_anatomy]]
+==== Анатомија окидача
+
+Окидач има следеће опције (имена су `trigger.trigger.<име>.<опција>`):
+
+[width="100%", cols="2m,3,10", options="header"]
+|===
+| Опција | Вредности | Опис
+
+| enabled | `on`, `off` |
+ Када је опција `off`, окидач је искључен и акције се више не изводе.
+
+| hook | `+signal+`, `+hsignal+`, `+modifier+`, `+line+`, `+print+`, `+command+`,
+ `+command_run+`, `+timer+`, `+config+`, `+focus+`, `+info+`, `+info_hashtable+` |
+ Кука која се користи у окидачу. За више информација, погледајте
+ link:weechat_plugin_api.sr.html#hooks[WeeChat референтни приручник API додатака / Куке].
+
+| arguments | стринг |
+ Аргументи за куку, зависе од врсте куке која се користи.
+
+| conditions | стринг |
+ Услови под којима се окидач извршава; они се израчунавају (погледајте команду
+ <<command_weechat_eval,/eval>>).
+
+| regex | стринг |
+ Један или више POSIX проширених регуларних израза за измену примљених података у
+ функцији повратног позива куке (и још понешто што додаје окидач додатак), погледајте
+ <<trigger_regex,регуларни израз>>.
+
+| command | стринг |
+ Команда која треба да се изврши (више команди може да се раздвоји тачка запетама);
+ стринг се израчунава (погледајте команду <<command_weechat_eval,/eval>>).
+
+| return_code | `+ok+`, `+ok_eat+`, `+error+` |
+ Повратни кôд функције повратног позива (подразумевани је `ok`, што би и требало
+ да се користи у скоро свим окидачима, остале вредности се ретко користе).
+
+| post_action | `none`, `disable`, `delete` |
+ Акција која се врши над окидачем након његовог извршавања (подразумевано је `none`
+ што би требало да се користи у скоро свим окидачима, остале вредности се ретко користе).
+|===
+
+На пример, подразумевани окидач _beep_ има следеће опције:
+
+----
+trigger.trigger.beep.enabled = on
+trigger.trigger.beep.hook = print
+trigger.trigger.beep.arguments = ""
+trigger.trigger.beep.conditions = "${tg_displayed} && (${tg_highlight} || ${tg_msg_pv})"
+trigger.trigger.beep.regex = ""
+trigger.trigger.beep.command = "/print -beep"
+trigger.trigger.beep.return_code = ok
+trigger.trigger.beep.post_action = none
+----
+
+[[trigger_execution]]
+==== Извршавање
+
+Када се позове функција повратног позива окидача, извршавају се следеће акције, у наведеном редоследу, само ако су окидачи глобално укључени и ако је сам окидач укључен:
+
+. провера услова окидача: ако је нетачан, завршава се
+. замена текста у окидачу употребом регуларног израза (или више њих)
+. извршавање команде (или више њих)
+. излаз са повратним кодом (осим за куке _modifier_, _line_, _focus_, _info_ и _info_hashtable_)
+. извршавање пост акције (ако није `none`).
+
+[[trigger_hook_arguments]]
+==== Аргументи куке
+
+Аргументи куке зависе од употребљене куке. Раздвајају се са тачка запетама.
+
+[width="100%", cols="2,6,7,2", options="header"]
+|===
+| Кука | Аргументи | Примери | Документација (API)
+
+| signal |
+ 1. име сигнала (дозвољава се приоритет) (обавезан) +
+ 2. име сигнала (дозвољава се приоритет) +
+ 3. ... |
+`+*,irc_in_privmsg+` +
+`+*,irc_in_privmsg;*,irc_in_notice+` +
+`+signal_sigwinch+` |
+link:weechat_plugin_api.sr.html#_hook_signal[hook_signal]
+
+| hsignal |
+ 1. име сигнала (дозвољава се приоритет) (обавезан) +
+ 2. име сигнала (дозвољава се приоритет) +
+ 3. ... |
+`+nicklist_nick_added+` |
+link:weechat_plugin_api.sr.html#_hook_hsignal[hook_hsignal]
+
+| modifier |
+ 1. име модификатора (дозвољава се приоритет) (обавезан) +
+ 2. име мофидикатора (дозвољава се приоритет) +
+ 3. ... |
+`+weechat_print+` +
+`+5000\|input_text_display;5000\|history_add+` |
+link:weechat_plugin_api.sr.html#_hook_modifier[hook_modifier]
+
+| line |
+ 1. тип бафера +
+ 2. име бафера +
+ 3. ознаке |
+`+formatted+` +
+`+free+` +
+`+*;irc.libera.*+` +
+`+*;irc.libera.#weechat+` +
+`+formatted;irc.libera.#weechat;irc_notice+` |
+link:weechat_plugin_api.sr.html#_hook_line[hook_line]
+
+| print |
+ 1. име бафера +
+ 2. ознаке +
+ 3. порука +
+ 4. уклањање боја (0/1) |
+`+irc.libera.*+` +
+`+irc.libera.#weechat+` +
+`+irc.libera.#weechat;irc_notice+` +
+`+*;;;1+` |
+link:weechat_plugin_api.sr.html#_hook_print[hook_print]
+
+| command |
+ 1. име команде (дозвољава се приоритет) (обавезан) +
+ 2. опис (израчунава се, погледајте команду <<command_weechat_eval,/eval>>) +
+ 3. аргументи (израчунава се, погледајте команду <<command_weechat_eval,/eval>>) +
+ 4. опис аргумената (израчунава се, погледајте команду <<command_weechat_eval,/eval>>) +
+ 5. довршавање (израчунава се, погледајте команду <<command_weechat_eval,/eval>>) |
+`+test+` +
+`+5000\|test+` +
+`+test;test command;arg1 arg2;arg1: description 1${\n}arg2: description 2+` |
+link:weechat_plugin_api.sr.html#_hook_command[hook_command]
+
+| command_run |
+ 1. команда (дозвољава се приоритет) (обавезан) +
+ 2. команда (дозвољава се приоритет) +
+ 3. ... |
+`+/cmd arguments+` |
+link:weechat_plugin_api.sr.html#_hook_command_run[hook_command_run]
+
+| timer |
+ 1. интервал у милисекундама (обавезан) +
+ 2. поравнање на секунду (подразумевано: 0) +
+ 3. макс број позива (подразумевано: 0, што значи „нема краја”) |
+`+3600000+` +
+`+60000;0;5+` |
+link:weechat_plugin_api.sr.html#_hook_timer[hook_timer]
+
+| config |
+ 1. име опције (дозвољава се приоритет) (обавезан) +
+ 2. име опције (дозвољава се приоритет) +
+ 3. ... |
+`+weechat.look.*+` |
+link:weechat_plugin_api.sr.html#_hook_config[hook_config]
+
+| focus |
+ 1. име површине (дозвољава се приоритет) (обавезан) +
+ 2. име површине (дозвољава се приоритет) +
+ 3. ... |
+`+buffer_nicklist+` |
+link:weechat_plugin_api.sr.html#_hook_focus[hook_focus]
+
+| info |
+ 1. инфо име (дозвољава се приоритет) (обавезан) +
+ 2. инфо име (дозвољава се приоритет) +
+ 3. ... |
+`+my_info+` |
+link:weechat_plugin_api.sr.html#_hook_info[hook_info]
+
+| info_hashtable |
+ 1. инфо име (дозвољава се приоритет) (обавезан) +
+ 2. инфо име (дозвољава се приоритет) +
+ 3. ... |
+ `+my_info+` |
+ link:weechat_plugin_api.sr.html#_hook_info_hashtable[hook_info_hashtable]
+|===
+
+[[trigger_conditions]]
+==== Услови
+
+За наставак обраде окидача, или за заустављање свега, користе се услови.
+
+Они се израчунавају и могућа је употреба података доступних у функцији повратног позива (погледајте <<trigger_callback_data,податке у функцијама повратних позива>> и команду <<command_weechat_eval,/eval>>).
+
+Пример: подразумевани окидач _beep_ користи следећи услов како би се звучни сигнал огласио само за истицање или за приватну поруку:
+
+----
+${tg_displayed} && (${tg_highlight} || ${tg_msg_pv})
+----
+
+[[trigger_regex]]
+==== Регуларни израз
+
+Регуларни израз се користи за измену променљивих у хеш табели функције повратног позива.
+
+Формат је следећи: „/регизраз/замена” или „/регизраз/замена/пром” (где је _пром_ променљива хеш табеле).
+
+Ако _пром_ не постоји у хеш табели, она се аутоматски креира и има празну вредност. На овај начин могу да се креирају произвољне привремене променљиве.
+
+Ако се _пром_ не наведе, користи се подразумевана променљива која зависи од типа употребљене куке:
+
+[width="100%", cols="2,3,7", options="header"]
+|===
+| Кука | Подраз. променљива | Дозвољено ажурирање ^(1)^
+| signal | tg_signal_data |
+| hsignal | |
+| modifier | tg_string | tg_string
+| line | message | buffer, buffer_name, y, date, date_printed, str_time, tags, notify_level, highlight, prefix, message
+| print | tg_message |
+| command | tg_argv_eol1 |
+| command_run | tg_command |
+| timer | tg_remaining_calls |
+| config | tg_value |
+| focus | |
+| info | tg_info | tg_info
+| info_hashtable | | све променљиве примљене у хеш табели
+|===
+
+[NOTE]
+^(1)^ У окидачу је могуће ажурирање свих променљивих, али само ове променљиве утичу на вредност коју враћа окидач и коју користи програм WeeChat.
+
+Више регуларних израза може да се раздвоји размаком, на пример: /регизраз1/замена1/пром1 /регизраз2/замена2/пром2".
+
+Карактер „/” може да се замени било којим карактером (један или више идентичних карактера).
+
+У „замена” могу да се користе групе подударања:
+
+* `+${re:0}+` до `+${re:99}+`: `+${re:0}+` је комплетно подударање, `+${re:1}+` до `+${re:99}+` су ухваћене групе
+* `+${re:+}+`: последње подударање (са највишим бројем)
+* `+${hide:c,${re:N}}+`: подударање „N” са свим карактерима се замењује са „c” (пример: `+${hide:*,${re:2}}+` је група #2 у којој су сви карактери замењени са `+*+`).
+
+Пример: користи подебљан текст за речи уоквирене са `+*+`:
+
+----
+/\*([^ ]+)\*/*${color:bold}${re:1}${color:-bold}*/
+----
+
+Пример: подразумевани окидач _server_pass_ користи следећи регуларни израз да сакрије лозинке у командама `/server` и `/connect` (карактери у лозинкама се замењују са `+*+`):
+
+----
+==^(/(server|connect) .*-(sasl_)?password=)([^ ]+)(.*)==${re:1}${hide:*,${re:4}}${re:5}
+----
+
+[NOTE]
+У овом примеру се користи „==” као граничник јер у регуларном изразу постоји „/”.
+
+[[trigger_command]]
+==== Команда
+
+Команда се извршава након замене текста регуларним изразом. Више команди може да се замени тачка запетама.
+
+Она се израчунава (погледајте команду <<command_weechat_eval,/eval>>) и у команди може да се користи текст се замењен регуларним изразом.
+
+Пример: подразумевани _beep_ окидач користи следећу команду да изда звучно упозорење (BEL):
+
+----
+/print -beep
+----
+
+[[trigger_callback_data]]
+==== Подаци у функцијама повратног позива
+
+Подаци који се приме у функцијама повратног позива се чувају у хеш табелама (показивачи и стрингови) и могу да се користе у следећим опцијама:
+
+* _conditions_
+* _regex_
+* _command_
+
+Садржај хеш табела зависи од врсте куке.
+
+Згодан начин за приказ података у окидачу је да се отвори бафер за надгледање окидача, употребом следеће команде:
+
+----
+/trigger monitor
+----
+
+Све функције повратног позива у хеш табелу постављају следеће променљиве:
+
+[width="100%", cols="3m,2,14", options="header"]
+|===
+| Променљива | Тип | Опис
+| tg_trigger_name | стринг | Име окидача.
+|===
+
+[[trigger_data_signal]]
+===== Signal
+
+Функција повратног позива „signal” поставља следеће променљиве у хеш табелу:
+
+[width="100%", cols="3m,2,14", options="header"]
+|===
+| Променљива | Тип | Опис
+| tg_signal | стринг | Име сигнала.
+| tg_signal_data | стринг | Подаци послати сигналом.
+|===
+
+Ако сигнал садржи IRC поруку, порука се парсира и у хеш табелу се додају следећи подаци:
+
+[width="100%", cols="3m,2,14", options="header"]
+|===
+| Променљива | Тип | Опис
+| irc_server | показивач | Показивач на IRC сервер (могу да се користе променљиве у hdata типа „irc_server”, као што је `+${irc_server.name}+`).
+| irc_channel | показивач | Показивач на IRC канал (могу да се користе променљиве у hdata типа „irc_channel”, као што је `+${irc_channel.name}+`).
+| server | стринг | Име сервера (пример: „libera”).
+| tags | стринг | Ознаке у поруци (ретко се користе).
+| message_without_tags | стринг | Порука без ознака.
+| nick | стринг | Надимак.
+| host | стринг | Име хоста.
+| command | стринг | IRC команда (пример: „PRIVMSG”, „NOTICE”, ...).
+| channel | стринг | IRC канал.
+| arguments | стринг | Аргументи команде (укључујући вредност _channel_).
+| text | стринг | Текст (на пример, корисникова порука).
+| pos_command | стринг | Индекс _command_ у поруци („-1” ако се _command_ не пронађе).
+| pos_arguments | стринг | Индекс _arguments_ у поруци („-1” ако се _arguments_ не пронађе).
+| pos_channel | стринг | Индекс _channel_ у поруци („-1” ако се _channel_ не пронађе).
+| pos_text | стринг | Индекс _text_ у поруци („-1” ако се _text_ не пронађе).
+|===
+
+Када су подаци показивач, за читање hdata особине може да се употреби променљива `+tg_signal_data+` на следећи начин (у овом примеру је то показивач на бафер):
+
+----
+${buffer[${tg_signal_data}].full_name}
+----
+
+[[trigger_data_hsignal]]
+===== Hsignal
+
+Функција повратног позива „hsignal” поставља следеће променљиве у хеш табелу:
+
+[width="100%", cols="3m,2,14", options="header"]
+|===
+| Променљива | Тип | Опис
+| tg_signal | стринг | Име сигнала
+|===
+
+Хеш табела садржи све кључеве/вредности из примљене хеш табеле (тип: стринг/стринг).
+
+[[trigger_data_modifier]]
+===== Modifier
+
+Функција повратног позива „modifier” поставља следеће променљиве у хеш табелу:
+
+[width="100%", cols="3m,2,14", options="header"]
+|===
+| Променљива | Тип | Опис
+| tg_modifier | стринг | Име модификатора.
+| tg_modifier_data | стринг | Подаци који су послати уз модификатор.
+| tg_string | стринг | Стринг који може да се модификује.
+| tg_string_nocolor | стринг | Стринг без кодова боје.
+|===
+
+У случају _weechat_print_ модификатора, додају се променљиве коришћењем ознака порука (погледајте <<trigger_data_print,куку print>> испод), као и следеће променљиве:
+
+[width="100%", cols="3m,2,14", options="header"]
+|===
+| Променљиве | Тип | Опис
+| buffer | показивач | Бафер у коме се порука исписује.
+| tg_plugin | стринг | Додатак бафера у коме се порука исписује.
+| tg_buffer | стринг | Пуно име бафера у коме се порука исписује.
+| tg_prefix | стринг | Префикс поруке која се исписује.
+| tg_prefix_nocolor | стринг | Префикс без кодова боје.
+| tg_message | стринг | Порука која се исписује.
+| tg_message_nocolor | стринг | Порука без кодова боје.
+|===
+
+Ако модификатор садржи IRC поруку, порука се парсира и у хеш табелу се додаје још података (погледајте <<trigger_data_signal,куку signal>>).
+
+[[trigger_data_line]]
+===== Line
+
+Функција повратног позива „line” поставља следеће променљиве у хеш табелу:
+
+[width="100%", cols="3m,2,14", options="header"]
+|===
+| Променљива | Тип | Опис
+| buffer | показивач | Бафер.
+| buffer_name | стринг | Име бафера.
+| buffer_type | стринг | Тип бафера („formatted” или „free”).
+| y | стринг | Број линије за бафер са слободним садржајем (≥ 0), -1 за бафер са форматираним садржајем.
+| date | стринг | Датум линије (временска ознака).
+| date_printed | стринг | Датум када је линија била приказана (временска ознака).
+| str_time | стринг | Датум за приказ. Може да садржи кодове боја.
+| tags | стринг | Ознаке поруке (са запетом додатом на почетак/крај стринга).
+| displayed | стринг | „1” ако се приказује, „0” ако је линија филтрирана.
+| notify_level | стринг | „-1” = без обавештавања, „0” = низак ниво, „1” = порука, „2” = приватна порука, „3” = истицање
+| highlight | стринг | „1” ако је истакнута, у супротном „0”.
+| prefix | стринг | Префикс.
+| tg_prefix_nocolor | стринг | Префикс без кодова боје.
+| message | стринг | Порука.
+| tg_message_nocolor | стринг | Порука без кодова боје.
+|===
+
+Променљиве које се постављају употребом ознака у поруци:
+
+[width="100%", cols="3m,2,14", options="header"]
+|===
+| Променљива | Тип | Опис
+| tg_tags_count | стринг | Број ознака у поруци.
+| tg_tag_nick | стринг | Надимак (из ознаке „nick_xxx”).
+| tg_tag_prefix_nick | стринг | Боја надимка у префиксу (из ознаке „prefix_nick_ccc”).
+| tg_tag_host | стринг | Корисничко име и хост, формат: корисничкоиме@хост (из ознаке „host_xxx”).
+| tg_tag_notify | стринг | Ниво обавештавања (_none_, _message_, _private_, _highlight_).
+| tg_notify | стринг | Ниво обавештавања, ако се разликује од _none_.
+| tg_msg_pv | стринг | „1” за приватну поруку, у супротном „0”.
+|===
+
+[[trigger_data_print]]
+===== Print
+
+Функција повратног позива „print” поставља следеће променљиве у хеш табелу:
+
+[width="100%", cols="3m,2,14", options="header"]
+|===
+| Променљива | Тип | Опис
+| buffer | показивач | Бафер.
+| tg_date | стринг | Датум/време поруке (формат: `ГГГГ-ММ-ДД чч:мм:сс`).
+| tg_displayed | стринг | „1” ако се приказује, „0” ако се линија филтрира.
+| tg_highlight | стринг | „1” ако је истакнута, у супротном „0”.
+| tg_prefix | стринг | Префикс.
+| tg_prefix_nocolor | стринг | Префикс без кодова боја.
+| tg_message | стринг | Порука.
+| tg_message_nocolor | стринг | Порука без кодова боја.
+|===
+
+Променљиве које се постављају употребом ознака у поруци:
+
+[width="100%", cols="3m,2,14", options="header"]
+|===
+| Променљива | Тип | Опис
+| tg_tags | стринг | Ознаке поруке (са запетом додатом на почетак/крај стринга).
+| tg_tags_count | стринг | Број ознака у поруци.
+| tg_tag_nick | стринг | Надимак (из ознаке „nick_xxx”).
+| tg_tag_prefix_nick | стринг | Боја надимка у префиксу (из ознаке „prefix_nick_ccc”).
+| tg_tag_host | стринг | Корисничко име и хост, формат: корисничкоиме@хост (из ознаке „host_xxx”).
+| tg_tag_notify | стринг | Ниво обавештавања (_none_, _message_, _private_, _highlight_).
+| tg_notify | стринг | Ниво обавештавања, ако се разликује од _none_.
+| tg_msg_pv | стринг | „1” за приватну поруку, у супротном „0”.
+|===
+
+[[trigger_data_command]]
+===== Команда
+
+Функција повратног позива „command” поставља следеће променљиве у хеш табелу:
+
+[width="100%", cols="3m,2,14", options="header"]
+|===
+| Променљива | Тип | Опис
+| buffer | показивач | Бафер.
+| tg_argc | стринг | Број аргумената (сама команда се броји као један аргумент).
+| tg_argvN | стринг | Аргумент #N (`+tg_argv0+` је сама команда, остали су стварни аргументи команде).
+| tg_argv_eolN | стринг | Од аргумента #N до краја аргумената (`+tg_argv_eol0+` укључује саму команду).
+| tg_shell_argc | стринг | Број аргумента са поделом као што то ради командно окружење (сама команда се броји као један аргумент).
+| tg_shell_argvN | стринг | Аргумент #N са поделом као што то ради командно окружење (`+tg_shell_argv0+` је сама команда, остали су стварни аргументи команде).
+|===
+
+[[trigger_data_command_run]]
+===== Command_run
+
+Функција повратног позива „command_run” поставља следеће променљиве у хеш табелу:
+
+[width="100%", cols="3m,2,14", options="header"]
+|===
+| Променљива | Тип | Опис
+| buffer | показивач | Бафер.
+| tg_command | стринг | Команда која се извршава.
+|===
+
+[[trigger_data_timer]]
+===== Timer
+
+Функција повратног позива „timer” поставља следеће променљиве у хеш табелу:
+
+[width="100%", cols="3m,2,14", options="header"]
+|===
+| Променљива | Тип | Опис
+| tg_remaining_calls | стринг | Број преосталих позива.
+| tg_date | стринг | Текући датум/време (формат: `ГГГГ-ММ-ДД чч:мм:сс`).
+|===
+
+[[trigger_data_config]]
+===== Config
+
+Функција повратног позива „config” поставља следеће променљиве у хеш табелу:
+
+[width="100%", cols="3m,2,14", options="header"]
+|===
+| Променљива | Тип | Опис
+| tg_option | стринг | Опција.
+| tg_value | стринг | Вредност.
+|===
+
+[[trigger_data_focus]]
+===== Focus
+
+Функција повратног позива „focus” поставља следеће променљиве у хеш табелу:
+
+[width="100%", cols="3m,2,14", options="header"]
+|===
+| Променљива | Тип | Опис
+| window | показивач | Прозор.
+| buffer | показивач | Бафер.
+|===
+
+Хеш табела садржи све кључеве/вредности из примљене хеш табеле (тип: стринг/стринг).
+
+[[trigger_data_info]]
+===== Инфо
+
+Функција повратног позива „info” поставља следеће променљиве у хеш табелу:
+
+[width="100%", cols="3m,2,14", options="header"]
+|===
+| Променљива | Тип | Опис
+| tg_info_name | стринг | Име инфо.
+| tg_arguments | стринг | Аргументи.
+| tg_info | стринг | Празан стринг (инфо који ће се вратити).
+|===
+
+[[trigger_data_info_hashtable]]
+===== Info_hashtable
+
+Функција повратног позива „info_hashtable” поставља следеће променљиве у хеш табелу:
+
+[width="100%", cols="3m,2,14", options="header"]
+|===
+| Променљива | Тип | Опис
+| tg_info_name | стринг | Име инфо.
+|===
+
+Хеш табела садржи све кључеве/вредности из примљене хеш табеле (тип: стринг/стринг).
+
+[[trigger_examples]]
+==== Примери
+
+[[trigger_example_url_color]]
+===== Боја за URL адресе
+
+URL адресе се приказују зеленом бојом:
+
+----
+/trigger add url_color modifier weechat_print "${tg_notify}" "==[a-zA-Z0-9_]+://[^ ]+==${color:green}${re:0}${color:reset}=="
+----
+
+[NOTE]
+Једноставни регизраз који се користи за детекцију URL адреса можда неће ухватити све URL адресе, али је бржи од комплексног регизраза.
+
+[[trigger_example_auto_pong]]
+===== Ауто pong на ping упите
+
+Када неко у приватни бафер пошаље „ping”, овај окидач ће аутоматски одговорити са `pong`:
+
+----
+/trigger add pong print "" "${type} == private && ${tg_message} == ping" "" "pong"
+----
+
+[[trigger_example_responsive_layout]]
+===== Респонзивни распоред
+
+Следећи окидачи могу да се употребе за прилагођавање ствари онда када се промени величина терминала:
+
+----
+/trigger add resize_small signal signal_sigwinch "${info:term_width} < 100" "" "/bar hide nicklist"
+/trigger add resize_big signal signal_sigwinch "${info:term_width} >= 100" "" "/bar show nicklist"
+----
+
+Окидачи хватају сигнал „signal_sigwinch”, који шаље програм WeeChat онда када прими сигнал SIGWINCH (тј. када се промени величина терминала).
+
+Услов са `+${info:term_width}+` проверава ширину терминала (такође можете да употребите и `+${info:term_height}+` ако је потребно).
+
+Када у примеру терминал постане мали, листа надимака се сакрива. А трака се враћа у случају да ширина постане већа или једнака 100 карактера.
+
+[[trigger_example_config_save]]
+===== Аутоматско чување конфигурације
+
+Можете аутоматски сачувати конфигурационе фајлове (`+*.conf+`), на пример, на сваки сат:
+
+----
+/trigger add cfgsave timer 3600000;0;0 "" "" "/mute /save"
+----
+
+Аргументи timer куке су:
+
+* _3600000_: 3600 * 1000 милисекунди, функција повратног позива се позива сваког сата
+* _0_: поравнање на секунду (овде се не врши поравнање)
+* _0_: макс број позива (0 = тајмер се никада не зауставља)
+
+Команда `/mute /save` ће нечујно да сачува конфигурационе фајлове (ништа се не исписује у бафер језгра).
+
+[[trigger_commands]]
+==== Команде
+
+include::includes/autogen_user_commands.sr.adoc[tag=trigger_commands]
+
+[[trigger_options]]
+==== Опције
+
+Одељци у фајлу _trigger.conf_:
+
+[width="100%", cols="3m,6m,16", options="header"]
+|===
+| Одељак | Команда за контролу | Опис
+| look | /set trigger.look.* | Изглед и осећај.
+| color | /set trigger.color.* | Боје.
+| trigger | <<command_trigger_trigger,/trigger add>> +
+ <<command_trigger_trigger,/trigger set>> +
+ /set trigger.trigger.* | Опције окидача.
+|===
+
+Опције:
+
+include::includes/autogen_user_options.sr.adoc[tag=trigger_options]
+
+[[xfer_plugin]]
+=== Xfer
+
+Xfer додатак вам омогућава:
+
+* директни разговор (између два хоста, без сервера): на пример „DCC Chat” преко IRC додатка
+* пренос фајлова, на пример „DCC” преко IRC додатка
+
+[[xfer_commands]]
+==== Команде
+
+include::includes/autogen_user_commands.sr.adoc[tag=xfer_commands]
+
+[[xfer_options]]
+==== Опције
+
+Одељци у фајлу _xfer.conf_:
+
+[width="100%", cols="3m,6m,16", options="header"]
+|===
+| Одељак | Команда за контролу | Опис
+| look | /set xfer.look.* | Изглед и осећај.
+| color | /set xfer.color.* | Боје.
+| network | /set xfer.network.* | Мрежне опције.
+| file | /set xfer.file.* | Опције за послате/примљене фајлове.
+|===
+
+Опције:
+
+include::includes/autogen_user_options.sr.adoc[tag=xfer_options]
+
+[[support]]
+== Подршка
+
+Пре него што потражите подршку, детаљно прочитајте документацију и ЧПП који се испоручују уз програм WeeChat.
+
+За подршку преко IRC, на серверу _irc.libera.chat_:
+
+* званични канали (са програмерима):
+** _#weechat_ (енглески)
+** _#weechat-fr_ (француски)
+* незванични канали:
+** _#weechat-de_ (немачки)
+** _#weechat-fi_ (фински)
+
+За остале начине подршке, погледајте: https://weechat.org/about/support