summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/ja/CMakeLists.txt12
-rw-r--r--doc/ja/Makefile.am6
-rw-r--r--doc/ja/autogen/plugin_api/completions.txt2
-rw-r--r--doc/ja/autogen/plugin_api/hdata.txt152
-rw-r--r--doc/ja/autogen/plugin_api/infos.txt4
-rw-r--r--doc/ja/autogen/user/aspell_options.txt4
-rw-r--r--doc/ja/autogen/user/irc_commands.txt88
-rw-r--r--doc/ja/autogen/user/irc_options.txt56
-rw-r--r--doc/ja/autogen/user/logger_options.txt4
-rw-r--r--doc/ja/autogen/user/relay_options.txt24
-rw-r--r--doc/ja/autogen/user/rmodifier_commands.txt30
-rw-r--r--doc/ja/autogen/user/script_options.txt52
-rw-r--r--doc/ja/autogen/user/weechat_commands.txt310
-rw-r--r--doc/ja/autogen/user/weechat_options.txt158
-rw-r--r--doc/ja/autogen/user/xfer_options.txt20
-rw-r--r--doc/ja/weechat_faq.ja.txt2
-rw-r--r--doc/ja/weechat_plugin_api.ja.txt14513
-rw-r--r--doc/ja/weechat_user.ja.txt42
18 files changed, 14998 insertions, 481 deletions
diff --git a/doc/ja/CMakeLists.txt b/doc/ja/CMakeLists.txt
index 96d5b1485..610b97d12 100644
--- a/doc/ja/CMakeLists.txt
+++ b/doc/ja/CMakeLists.txt
@@ -48,6 +48,18 @@ IF(ENABLE_DOC AND SOURCEHIGHLIGHT_FOUND)
ADD_CUSTOM_TARGET(doc-user-ja ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/weechat_user.ja.html)
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/weechat_user.ja.html DESTINATION ${SHAREDIR}/doc/${PROJECT_NAME})
+ # plugin API reference
+ ADD_CUSTOM_COMMAND(
+ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/weechat_plugin_api.ja.html
+ COMMAND ${ASCIIDOC_EXECUTABLE} ARGS -a toc -a toclevels=4 -a toc-title='目次' -a revision="${VERSION}" -a stylesheet=${CMAKE_CURRENT_SOURCE_DIR}/../asciidoc.css -f ${CMAKE_CURRENT_SOURCE_DIR}/../asciidoc.conf -n -o ${CMAKE_CURRENT_BINARY_DIR}/weechat_plugin_api.ja.html ${CMAKE_CURRENT_SOURCE_DIR}/weechat_plugin_api.ja.txt
+ DEPENDS
+ ${CMAKE_CURRENT_SOURCE_DIR}/weechat_plugin_api.ja.txt
+ ${CMAKE_CURRENT_SOURCE_DIR}/autogen/plugin_api/*.txt
+ COMMENT "Building weechat_plugin_api.ja.html"
+ )
+ ADD_CUSTOM_TARGET(doc-plugin-api-ja ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/weechat_plugin_api.ja.html)
+ INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/weechat_plugin_api.ja.html DESTINATION ${SHAREDIR}/doc/${PROJECT_NAME})
+
# scripting guide
ADD_CUSTOM_COMMAND(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/weechat_scripting.ja.html
diff --git a/doc/ja/Makefile.am b/doc/ja/Makefile.am
index 6b9f24217..6165da021 100644
--- a/doc/ja/Makefile.am
+++ b/doc/ja/Makefile.am
@@ -23,6 +23,7 @@ EXTRA_DIST = CMakeLists.txt \
weechat.1.ja.txt \
cmdline_options.ja.txt \
weechat_user.ja.txt \
+ weechat_plugin_api.ja.txt \
weechat_scripting.ja.txt \
weechat_faq.ja.txt \
weechat_quickstart.ja.txt \
@@ -37,6 +38,7 @@ if MAN
endif
if DOC
doc_targets = weechat_user.ja.html \
+ weechat_plugin_api.ja.html \
weechat_scripting.ja.html \
weechat_faq.ja.html \
weechat_quickstart.ja.html \
@@ -56,6 +58,10 @@ weechat.1: weechat.1.ja.txt cmdline_options.ja.txt
weechat_user.ja.html: weechat_user.ja.txt cmdline_options.ja.txt $(wildcard autogen/user/*.txt)
$(ASCIIDOC) -a toc -a toclevels=4 -a toc-title='目次' -a revision="$(VERSION)" -a stylesheet=$(abs_top_srcdir)/doc/asciidoc.css -f $(abs_top_srcdir)/doc/asciidoc.conf -n -o weechat_user.ja.html $(abs_top_srcdir)/doc/ja/weechat_user.ja.txt
+# plugin API reference
+weechat_plugin_api.ja.html: weechat_plugin_api.ja.txt $(wildcard autogen/plugin_api/*.txt)
+ $(ASCIIDOC) -a toc -a toclevels=4 -a toc-title='目次' -a revision="$(VERSION)" -a stylesheet=$(abs_top_srcdir)/doc/asciidoc.css -f $(abs_top_srcdir)/doc/asciidoc.conf -n -o weechat_plugin_api.ja.html $(abs_top_srcdir)/doc/ja/weechat_plugin_api.ja.txt
+
# scripting guide
weechat_scripting.ja.html: weechat_scripting.ja.txt
$(ASCIIDOC) -a toc -a toclevels=3 -a toc-title='目次' -a revision="$(VERSION)" -a stylesheet=$(abs_top_srcdir)/doc/asciidoc.css -f $(abs_top_srcdir)/doc/asciidoc.conf -n -o weechat_scripting.ja.html $(abs_top_srcdir)/doc/ja/weechat_scripting.ja.txt
diff --git a/doc/ja/autogen/plugin_api/completions.txt b/doc/ja/autogen/plugin_api/completions.txt
index 9e12301c4..733d766ed 100644
--- a/doc/ja/autogen/plugin_api/completions.txt
+++ b/doc/ja/autogen/plugin_api/completions.txt
@@ -22,7 +22,7 @@
| irc | irc_ignores_numbers | 無視エントリの数
-| irc | irc_msg_kick | default kick message
+| irc | irc_msg_kick | デフォルトのキックメッセージ
| irc | irc_msg_part | IRC チャンネルのデフォルト退出メッセージ
diff --git a/doc/ja/autogen/plugin_api/hdata.txt b/doc/ja/autogen/plugin_api/hdata.txt
index b36c7dd81..36a56d0bf 100644
--- a/doc/ja/autogen/plugin_api/hdata.txt
+++ b/doc/ja/autogen/plugin_api/hdata.txt
@@ -1,6 +1,6 @@
* 'guile_callback': スクリプトのコールバック
** プラグイン: guile
-** variables:
+** 変数:
*** 'script' (pointer, hdata: "guile_script")
*** 'function' (string)
*** 'data' (string)
@@ -15,7 +15,7 @@
*** 'next_callback' (pointer, hdata: "guile_callback")
* 'guile_script': スクリプトのリスト
** プラグイン: guile
-** variables:
+** 変数:
*** 'filename' (string)
*** 'interpreter' (pointer)
*** 'name' (string)
@@ -29,12 +29,12 @@
*** 'unloading' (integer)
*** 'prev_script' (pointer, hdata: "guile_script")
*** 'next_script' (pointer, hdata: "guile_script")
-** lists:
+** リスト:
*** 'last_script'
*** 'scripts'
* 'irc_channel': irc チャンネル
** プラグイン: irc
-** variables:
+** 変数:
*** 'type' (integer)
*** 'name' (string)
*** 'topic' (string)
@@ -63,14 +63,14 @@
*** 'next_channel' (pointer, hdata: "irc_channel")
* 'irc_channel_speaking': irc 会話中チャンネル
** プラグイン: irc
-** variables:
+** 変数:
*** 'nick' (string)
*** 'time_last_message' (time)
*** 'prev_nick' (pointer, hdata: "irc_channel_speaking")
*** 'next_nick' (pointer, hdata: "irc_channel_speaking")
* 'irc_ignore': irc 無視
** プラグイン: irc
-** variables:
+** 変数:
*** 'number' (integer)
*** 'mask' (string)
*** 'regex_mask' (pointer)
@@ -78,12 +78,12 @@
*** 'channel' (string)
*** 'prev_ignore' (pointer, hdata: "irc_ignore")
*** 'next_ignore' (pointer, hdata: "irc_ignore")
-** lists:
+** リスト:
*** 'irc_ignore_list'
*** 'last_irc_ignore'
* 'irc_nick': irc ニックネーム
** プラグイン: irc
-** variables:
+** 変数:
*** 'name' (string)
*** 'host' (string)
*** 'prefixes' (string)
@@ -94,7 +94,7 @@
*** 'next_nick' (pointer, hdata: "irc_nick")
* 'irc_notify': irc 通知
** プラグイン: irc
-** variables:
+** 変数:
*** 'server' (pointer, hdata: "irc_server")
*** 'nick' (string)
*** 'check_away' (integer)
@@ -105,7 +105,7 @@
*** 'next_notify' (pointer, hdata: "irc_notify")
* 'irc_redirect': irc リダイレクト
** プラグイン: irc
-** variables:
+** 変数:
*** 'server' (pointer, hdata: "irc_server")
*** 'pattern' (string)
*** 'signal' (string)
@@ -128,7 +128,7 @@
*** 'next_redirect' (pointer, hdata: "irc_redirect")
* 'irc_redirect_pattern': irc リダイレクトパターン
** プラグイン: irc
-** variables:
+** 変数:
*** 'name' (string)
*** 'temp_pattern' (integer)
*** 'timeout' (integer)
@@ -137,12 +137,12 @@
*** 'cmd_extra' (string)
*** 'prev_redirect' (pointer, hdata: "irc_redirect_pattern")
*** 'next_redirect' (pointer, hdata: "irc_redirect_pattern")
-** lists:
+** リスト:
*** 'irc_redirect_patterns'
*** 'last_irc_redirect_pattern'
* 'irc_server': irc サーバ
** プラグイン: irc
-** variables:
+** 変数:
*** 'name' (string)
*** 'options' (pointer)
*** 'temp_server' (integer)
@@ -213,12 +213,12 @@
*** 'last_channel' (pointer, hdata: "irc_channel")
*** 'prev_server' (pointer, hdata: "irc_server")
*** 'next_server' (pointer, hdata: "irc_server")
-** lists:
+** リスト:
*** 'irc_servers'
*** 'last_irc_server'
* 'lua_callback': スクリプトのコールバック
** プラグイン: lua
-** variables:
+** 変数:
*** 'script' (pointer, hdata: "lua_script")
*** 'function' (string)
*** 'data' (string)
@@ -233,7 +233,7 @@
*** 'next_callback' (pointer, hdata: "lua_callback")
* 'lua_script': スクリプトのリスト
** プラグイン: lua
-** variables:
+** 変数:
*** 'filename' (string)
*** 'interpreter' (pointer)
*** 'name' (string)
@@ -247,12 +247,12 @@
*** 'unloading' (integer)
*** 'prev_script' (pointer, hdata: "lua_script")
*** 'next_script' (pointer, hdata: "lua_script")
-** lists:
+** リスト:
*** 'last_script'
*** 'scripts'
* 'perl_callback': スクリプトのコールバック
** プラグイン: perl
-** variables:
+** 変数:
*** 'script' (pointer, hdata: "perl_script")
*** 'function' (string)
*** 'data' (string)
@@ -267,7 +267,7 @@
*** 'next_callback' (pointer, hdata: "perl_callback")
* 'perl_script': スクリプトのリスト
** プラグイン: perl
-** variables:
+** 変数:
*** 'filename' (string)
*** 'interpreter' (pointer)
*** 'name' (string)
@@ -281,12 +281,12 @@
*** 'unloading' (integer)
*** 'prev_script' (pointer, hdata: "perl_script")
*** 'next_script' (pointer, hdata: "perl_script")
-** lists:
+** リスト:
*** 'last_script'
*** 'scripts'
* 'python_callback': スクリプトのコールバック
** プラグイン: python
-** variables:
+** 変数:
*** 'script' (pointer, hdata: "python_script")
*** 'function' (string)
*** 'data' (string)
@@ -301,7 +301,7 @@
*** 'next_callback' (pointer, hdata: "python_callback")
* 'python_script': スクリプトのリスト
** プラグイン: python
-** variables:
+** 変数:
*** 'filename' (string)
*** 'interpreter' (pointer)
*** 'name' (string)
@@ -315,12 +315,12 @@
*** 'unloading' (integer)
*** 'prev_script' (pointer, hdata: "python_script")
*** 'next_script' (pointer, hdata: "python_script")
-** lists:
+** リスト:
*** 'last_script'
*** 'scripts'
* 'ruby_callback': スクリプトのコールバック
** プラグイン: ruby
-** variables:
+** 変数:
*** 'script' (pointer, hdata: "ruby_script")
*** 'function' (string)
*** 'data' (string)
@@ -335,7 +335,7 @@
*** 'next_callback' (pointer, hdata: "ruby_callback")
* 'ruby_script': スクリプトのリスト
** プラグイン: ruby
-** variables:
+** 変数:
*** 'filename' (string)
*** 'interpreter' (pointer)
*** 'name' (string)
@@ -349,12 +349,12 @@
*** 'unloading' (integer)
*** 'prev_script' (pointer, hdata: "ruby_script")
*** 'next_script' (pointer, hdata: "ruby_script")
-** lists:
+** リスト:
*** 'last_script'
*** 'scripts'
* 'script_script': リポジトリからのスクリプト
** プラグイン: script
-** variables:
+** 変数:
*** 'name' (string)
*** 'name_with_extension' (string)
*** 'language' (integer)
@@ -378,12 +378,12 @@
*** 'install_order' (integer)
*** 'prev_script' (pointer, hdata: "script_script")
*** 'next_script' (pointer, hdata: "script_script")
-** lists:
+** リスト:
*** 'last_script_repo'
*** 'scripts_repo'
* 'tcl_callback': スクリプトのコールバック
** プラグイン: tcl
-** variables:
+** 変数:
*** 'script' (pointer, hdata: "tcl_script")
*** 'function' (string)
*** 'data' (string)
@@ -398,7 +398,7 @@
*** 'next_callback' (pointer, hdata: "tcl_callback")
* 'tcl_script': スクリプトのリスト
** プラグイン: tcl
-** variables:
+** 変数:
*** 'filename' (string)
*** 'interpreter' (pointer)
*** 'name' (string)
@@ -412,12 +412,12 @@
*** 'unloading' (integer)
*** 'prev_script' (pointer, hdata: "tcl_script")
*** 'next_script' (pointer, hdata: "tcl_script")
-** lists:
+** リスト:
*** 'last_script'
*** 'scripts'
* 'bar': バー
** プラグイン: weechat
-** variables:
+** 変数:
*** 'name' (string)
*** 'options' (pointer)
*** 'items_count' (integer)
@@ -431,24 +431,24 @@
*** 'bar_refresh_needed' (integer)
*** 'prev_bar' (pointer, hdata: "bar")
*** 'next_bar' (pointer, hdata: "bar")
-** lists:
+** リスト:
*** 'gui_bars'
*** 'last_gui_bar'
* 'bar_item': バーアイテム
** プラグイン: weechat
-** variables:
+** 変数:
*** 'plugin' (pointer, hdata: "plugin")
*** 'name' (string)
*** 'build_callback' (pointer)
*** 'build_callback_data' (pointer)
*** 'prev_item' (pointer, hdata: "bar_item")
*** 'next_item' (pointer, hdata: "bar_item")
-** lists:
+** リスト:
*** 'gui_bar_items'
*** 'last_gui_bar_item'
* 'bar_window': バーウィンドウ
** プラグイン: weechat
-** variables:
+** 変数:
*** 'bar' (pointer, hdata: "bar")
*** 'x' (integer)
*** 'y' (integer)
@@ -473,7 +473,7 @@
*** 'next_bar_window' (pointer, hdata: "bar_window")
* 'buffer': バッファ
** プラグイン: weechat
-** variables:
+** 変数:
*** 'plugin' (pointer, hdata: "plugin")
*** 'plugin_name_for_upgrade' (string)
*** 'number' (integer)
@@ -550,22 +550,22 @@
*** 'local_variables' (hashtable)
*** 'prev_buffer' (pointer, hdata: "buffer")
*** 'next_buffer' (pointer, hdata: "buffer")
-** lists:
+** リスト:
*** 'gui_buffer_last_displayed'
*** 'gui_buffers'
*** 'last_gui_buffer'
-* 'buffer_visited': visited buffer
+* 'buffer_visited': 訪問済みバッファ
** プラグイン: weechat
-** variables:
+** 変数:
*** 'buffer' (pointer, hdata: "buffer")
*** 'prev_buffer' (pointer, hdata: "buffer_visited")
*** 'next_buffer' (pointer, hdata: "buffer_visited")
-** lists:
+** リスト:
*** 'gui_buffers_visited'
*** 'last_gui_buffer_visited'
* 'completion': 補完する構造
** プラグイン: weechat
-** variables:
+** 変数:
*** 'buffer' (pointer, hdata: "buffer")
*** 'context' (integer)
*** 'base_command' (string)
@@ -587,14 +587,14 @@
*** 'last_partial_completion' (pointer, hdata: "completion_partial")
* 'completion_partial': 部分補完する構造
** プラグイン: weechat
-** variables:
+** 変数:
*** 'word' (string)
*** 'count' (integer)
*** 'prev_item' (pointer, hdata: "completion_partial")
*** 'next_item' (pointer, hdata: "completion_partial")
* 'config_file': 設定ファイル
** プラグイン: weechat
-** variables:
+** 変数:
*** 'plugin' (pointer, hdata: "plugin")
*** 'name' (string)
*** 'filename' (string)
@@ -605,12 +605,12 @@
*** 'last_section' (pointer, hdata: "config_section")
*** 'prev_config' (pointer, hdata: "config_file")
*** 'next_config' (pointer, hdata: "config_file")
-** lists:
+** リスト:
*** 'config_files'
*** 'last_config_file'
* 'config_option': 設定オプション
** プラグイン: weechat
-** variables:
+** 変数:
*** 'config_file' (pointer, hdata: "config_file")
*** 'section' (pointer, hdata: "config_section")
*** 'name' (string)
@@ -633,7 +633,7 @@
*** 'next_option' (pointer, hdata: "config_option")
* 'config_section': 設定セクション
** プラグイン: weechat
-** variables:
+** 変数:
*** 'config_file' (pointer, hdata: "config_file")
*** 'name' (string)
*** 'user_can_add_options' (integer)
@@ -654,7 +654,7 @@
*** 'next_section' (pointer, hdata: "config_section")
* 'filter': フィルタ
** プラグイン: weechat
-** variables:
+** 変数:
*** 'enabled' (integer)
*** 'name' (string)
*** 'buffer_name' (string)
@@ -668,24 +668,24 @@
*** 'regex_message' (pointer)
*** 'prev_filter' (pointer, hdata: "filter")
*** 'next_filter' (pointer, hdata: "filter")
-** lists:
+** リスト:
*** 'gui_filters'
*** 'last_gui_filter'
* 'history': バッファのコマンド履歴
** プラグイン: weechat
-** variables:
+** 変数:
*** 'text' (string)
*** 'next_history' (pointer, hdata: "history")
*** 'prev_history' (pointer, hdata: "history")
-** update allowed:
+** アップデート可:
*** '__create'
*** '__delete'
-** lists:
+** リスト:
*** 'gui_history'
*** 'last_gui_history'
* 'hotlist': ホットリスト
** プラグイン: weechat
-** variables:
+** 変数:
*** 'priority' (integer)
*** 'creation_time.tv_sec' (time)
*** 'creation_time.tv_usec' (long)
@@ -693,19 +693,19 @@
*** 'count' (integer, array_size: "4")
*** 'prev_hotlist' (pointer, hdata: "hotlist")
*** 'next_hotlist' (pointer, hdata: "hotlist")
-** lists:
+** リスト:
*** 'gui_hotlist'
*** 'last_gui_hotlist'
* 'input_undo': 入力行をアンドゥする構造
** プラグイン: weechat
-** variables:
+** 変数:
*** 'data' (string)
*** 'pos' (integer)
*** 'prev_undo' (pointer, hdata: "input_undo")
*** 'next_undo' (pointer, hdata: "input_undo")
* 'key': キー (キーボードショートカット)
** プラグイン: weechat
-** variables:
+** 変数:
*** 'key' (string)
*** 'area_type' (pointer)
*** 'area_name' (pointer)
@@ -714,7 +714,7 @@
*** 'score' (integer)
*** 'prev_key' (pointer, hdata: "key")
*** 'next_key' (pointer, hdata: "key")
-** lists:
+** リスト:
*** 'gui_default_keys'
*** 'gui_default_keys_cursor'
*** 'gui_default_keys_mouse'
@@ -733,7 +733,7 @@
*** 'last_gui_key_search'
* 'layout': レイアウト
** プラグイン: weechat
-** variables:
+** 変数:
*** 'name' (string)
*** 'layout_buffers' (pointer, hdata: "layout_buffer")
*** 'last_layout_buffer' (pointer, hdata: "layout_buffer")
@@ -742,13 +742,13 @@
*** 'internal_id_current_window' (integer)
*** 'prev_layout' (pointer, hdata: "layout")
*** 'next_layout' (pointer, hdata: "layout")
-** lists:
+** リスト:
*** 'gui_layout_current'
*** 'gui_layouts'
*** 'last_gui_layout'
* 'layout_buffer': バッファレイアウト
** プラグイン: weechat
-** variables:
+** 変数:
*** 'plugin_name' (string)
*** 'buffer_name' (string)
*** 'number' (integer)
@@ -756,7 +756,7 @@
*** 'next_layout' (pointer, hdata: "layout_buffer")
* 'layout_window': ウィンドウレイアウト
** プラグイン: weechat
-** variables:
+** 変数:
*** 'internal_id' (integer)
*** 'parent_node' (pointer, hdata: "layout_window")
*** 'split_pct' (integer)
@@ -767,13 +767,13 @@
*** 'buffer_name' (string)
* 'line': 1 行の構造
** プラグイン: weechat
-** variables:
+** 変数:
*** 'data' (pointer, hdata: "line_data")
*** 'prev_line' (pointer, hdata: "line")
*** 'next_line' (pointer, hdata: "line")
* 'line_data': 1 行データ構造
** プラグイン: weechat
-** variables:
+** 変数:
*** 'buffer' (pointer, hdata: "buffer")
*** 'y' (integer)
*** 'date' (time)
@@ -787,7 +787,7 @@
*** 'prefix' (shared_string)
*** 'prefix_length' (integer)
*** 'message' (string)
-** update allowed:
+** アップデート可:
*** 'date' (time)
*** 'date_printed' (time)
*** 'tags_array' (shared_string)
@@ -795,7 +795,7 @@
*** 'message' (string)
* 'lines': 行を持つ構造
** プラグイン: weechat
-** variables:
+** 変数:
*** 'first_line' (pointer, hdata: "line")
*** 'last_line' (pointer, hdata: "line")
*** 'last_read_line' (pointer, hdata: "line")
@@ -808,7 +808,7 @@
*** 'prefix_max_length_refresh' (integer)
* 'nick': ニックネームリストにあるニックネーム
** プラグイン: weechat
-** variables:
+** 変数:
*** 'group' (pointer, hdata: "nick_group")
*** 'name' (shared_string)
*** 'color' (shared_string)
@@ -819,7 +819,7 @@
*** 'next_nick' (pointer, hdata: "nick")
* 'nick_group': ニックネームリストにあるグループ
** プラグイン: weechat
-** variables:
+** 変数:
*** 'name' (shared_string)
*** 'color' (shared_string)
*** 'visible' (integer)
@@ -833,7 +833,7 @@
*** 'next_group' (pointer, hdata: "nick_group")
* 'plugin': プラグイン
** プラグイン: weechat
-** variables:
+** 変数:
*** 'filename' (string)
*** 'handle' (pointer)
*** 'name' (string)
@@ -845,22 +845,22 @@
*** 'debug' (integer)
*** 'prev_plugin' (pointer, hdata: "plugin")
*** 'next_plugin' (pointer, hdata: "plugin")
-** lists:
+** リスト:
*** 'last_weechat_plugin'
*** 'weechat_plugins'
* 'proxy': プロキシ
** プラグイン: weechat
-** variables:
+** 変数:
*** 'name' (string)
*** 'options' (pointer)
*** 'prev_proxy' (pointer, hdata: "proxy")
*** 'next_proxy' (pointer, hdata: "proxy")
-** lists:
+** リスト:
*** 'last_weechat_proxy'
*** 'weechat_proxies'
* 'window': ウィンドウ
** プラグイン: weechat
-** variables:
+** 変数:
*** 'number' (integer)
*** 'win_x' (integer)
*** 'win_y' (integer)
@@ -885,13 +885,13 @@
*** 'ptr_tree' (pointer, hdata: "window_tree")
*** 'prev_window' (pointer, hdata: "window")
*** 'next_window' (pointer, hdata: "window")
-** lists:
+** リスト:
*** 'gui_current_window'
*** 'gui_windows'
*** 'last_gui_window'
* 'window_scroll': ウィンドウ内のスクロール情報
** プラグイン: weechat
-** variables:
+** 変数:
*** 'buffer' (pointer, hdata: "buffer")
*** 'first_line_displayed' (integer)
*** 'start_line' (pointer, hdata: "line")
@@ -903,12 +903,12 @@
*** 'next_scroll' (pointer, hdata: "window_scroll")
* 'window_tree': ウィンドウツリー
** プラグイン: weechat
-** variables:
+** 変数:
*** '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")
-** lists:
+** リスト:
*** 'gui_windows_tree'
diff --git a/doc/ja/autogen/plugin_api/infos.txt b/doc/ja/autogen/plugin_api/infos.txt
index b0ae41a5f..470205d80 100644
--- a/doc/ja/autogen/plugin_api/infos.txt
+++ b/doc/ja/autogen/plugin_api/infos.txt
@@ -42,9 +42,9 @@
| weechat | locale | 翻訳メッセージに利用するロケール | -
-| weechat | term_height | height of terminal | -
+| weechat | term_height | ターミナルの高さ | -
-| weechat | term_width | width of terminal | -
+| weechat | term_width | ターミナルの幅 | -
| weechat | version | WeeChat のバージョン | -
diff --git a/doc/ja/autogen/user/aspell_options.txt b/doc/ja/autogen/user/aspell_options.txt
index 983b18957..bc84b6777 100644
--- a/doc/ja/autogen/user/aspell_options.txt
+++ b/doc/ja/autogen/user/aspell_options.txt
@@ -36,10 +36,10 @@
* [[option_aspell.color.misspelled]] *aspell.color.misspelled*
** 説明: `スペルミスのある単語に付ける色 (入力バー)`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `lightred`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `lightred`)
* [[option_aspell.color.suggestions]] *aspell.color.suggestions*
** 説明: `スペルミスのある単語に対する修正候補に付ける色 (ステータスバー)`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `default`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `default`)
diff --git a/doc/ja/autogen/user/irc_commands.txt b/doc/ja/autogen/user/irc_commands.txt
index 17909bf95..80dd0e670 100644
--- a/doc/ja/autogen/user/irc_commands.txt
+++ b/doc/ja/autogen/user/irc_commands.txt
@@ -65,21 +65,21 @@ channel: バン対象チャンネル
/connect <server> [<server>...] [-<option>[=<value>]] [-no<option>] [-nojoin] [-switch]
-all|-auto|-open [-nojoin] [-switch]
- server: server name, which can be:
- - internal server name (created by /server add, recommended usage)
- - hostname/port or IP/port (this will create a TEMPORARY server), port is 6667 by default
- - URL with format: irc[6][s]://[nickname[:password]@]irc.example.org[:port][/#channel1][,#channel2[...]]
- option: set option for server (for boolean option, value can be omitted)
- nooption: set boolean option to 'off' (for example: -nossl)
- -all: connect to all servers defined in configuration
- -auto: connect to servers with autoconnect enabled
- -open: connect to all opened servers that are not currently connected
- -nojoin: do not join any channel (even if autojoin is enabled on server)
- -switch: switch to next server address
-
-To disconnect from a server or stop any connection attempt, use command /disconnect.
-
-Examples:
+ server: サーバ名、これは:
+ - 内部サーバ名 (/server add で作成されたもの、利用推奨)
+ - ホスト名/ポート番号、又は IP アドレス/ポート番号 (これは一時的サーバを作る)、デフォルトのポート番号は 6667
+ - 次のフォーマットに従う URL: irc[6][s]://[nickname[:password]@]irc.example.org[:port][/#channel1][,#channel2[...]]
+ option: サーバに関するオプション (ブール型オプションでは、value は無視される)
+ nooption: ブール型オプションを 'off' にする (例: -nossl)
+ -all: 設定された全てのサーバに接続
+ -auto: 自動接続を有効化してサーバに接続
+ -open: 現在接続されていないがオープンされているサーバに接続
+ -nojoin: チャンネルに入らない (autojoin が有効化されていても)
+ -switch: 次のサーバアドレスに移動
+
+サーバとの接続を切断するか、接続試行を中止するには /disconnect コマンドを使ってください。
+
+例:
/connect freenode
/connect irc.oftc.net/6667
/connect irc6.oftc.net/6667 -ipv6
@@ -199,23 +199,23 @@ nick: ニックネームまたはマスク (ワイルドカード "*" を最初
add [re:]<nick> [<server> [<channel>]]
del <number>|-all
- list: list all ignores
- add: add an ignore
- nick: nick or hostname (can be a POSIX extended regular expression if "re:" is given or a mask using "*" to replace one or more chars)
- del: delete an ignore
- number: number of ignore to delete (look at list to find it)
- -all: delete all ignores
- server: internal server name where ignore is working
- channel: channel name where ignore is working
+ list: 無視エントリをリストアップ
+ add: 無視エントリを追加
+ nick: ニックネーム又はホスト名 ("re:" を付けることで POSIX 拡張正規表現を使えます、"*" は 1 つ以上の文字にマッチします)
+ del: 無視エントリの削除
+ number: 削除する無視エントリ番号 (番号はリストを参照)
+ -all: 全ての無視エントリを削除
+ server: 無視設定を有効にする内部サーバ名
+ channel: 無視設定を有効にするチャンネル名
-Note: the regular expression can start with "(?-i)" to become case sensitive.
+注意: 正規表現で大文字小文字を区別するには "(?-i)" を最初につけてください。
-Examples:
- ignore nick "toto" everywhere:
+例:
+ 全てのサーバ上のニックネーム "toto" を無視:
/ignore add toto
- ignore host "toto@domain.com" on freenode server:
+ freenode サーバ上のホスト名 "toto@domain.com" を無視:
/ignore add toto@domain.com freenode
- ignore host "toto*@*.domain.com" on freenode/#weechat:
+ freenode サーバの #weechat チャンネル上のホスト名 "toto*@*.domain.com" を無視:
/ignore add toto*@*.domain.com freenode #weechat
----
@@ -271,9 +271,9 @@ nick: nick
----
/kick [<channel>] <nick> [<reason>]
-channel: channel where user is
- nick: nick to kick
- reason: reason for kick (special variables $nick, $channel and $server are replaced by their value)
+channel: ユーザの居るチャンネル
+ nick: キックするニックネーム
+ reason: キック理由 (特殊変数 $nick、$channel、$server はそれぞれの値に置換されます)
----
[[command_irc_kickban]]
@@ -282,14 +282,14 @@ channel: channel where user is
----
/kickban [<channel>] <nick> [<reason>]
-channel: channel where user is
- nick: nick to kick and ban
- reason: reason for kick (special variables $nick, $channel and $channel are replaced by their value)
+channel: ユーザの居るチャンネル
+ nick: キックと参加禁止にするニックネーム
+ reason: キック理由 (特殊変数 $nick、$channel、$server はそれぞれの値に置換されます)
-It is possible to kick/ban with a mask, nick will be extracted from mask and replaced by "*".
+キックと参加禁止にマスクを使える場合、"*" のマスク展開後にマッチするニックネームがこれらの対象になる。
-Example:
- ban "*!*@host.com" and then kick "toto":
+例:
+ "*!*@host.com" を参加禁止して "toto" をキック:
/kickban toto!*@host.com
----
@@ -319,16 +319,16 @@ server_mask: このマスクにマッチするサーバのリスト
----
/list [<channel>[,<channel>...]] [<server>] [-re <regex>]
-channel: channel to list
- server: server name
- regex: POSIX extended regular expression used to filter results (case insensitive, can start by "(?-i)" to become case sensitive)
+channel: リストアップするチャンネル名
+ server: サーバ名
+ regex: 結果をフィルタする POSIX 拡張正規表現 (大文字小文字は区別しない、"(?-i)" で始めれば区別する)
-Examples:
- list all channels on server (can be very slow on large networks):
+例:
+ サーバ上の全てのチャンネルをリストアップ (大きなネットワークでは非常に遅い):
/list
- list channel #weechat:
+ #weechat チャンネルをリストアップ:
/list #weechat
- list all channels beginning with "#weechat" (can be very slow on large networks):
+ "#weechat" で始まる全てのチャンネルをリストアップ (大きなネットワークでは非常に遅い):
/list -re #weechat.*
----
diff --git a/doc/ja/autogen/user/irc_options.txt b/doc/ja/autogen/user/irc_options.txt
index a9b95e490..ec65851c4 100644
--- a/doc/ja/autogen/user/irc_options.txt
+++ b/doc/ja/autogen/user/irc_options.txt
@@ -1,37 +1,37 @@
* [[option_irc.color.input_nick]] *irc.color.input_nick*
** 説明: `インプットバーのニックネームに使う色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `lightcyan`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `lightcyan`)
* [[option_irc.color.item_away]] *irc.color.item_away*
** 説明: `離席アイテムに使う色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `yellow`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `yellow`)
* [[option_irc.color.item_channel_modes]] *irc.color.item_channel_modes*
** 説明: `チャンネル名付近のチャンネルモードに使う色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `default`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `default`)
* [[option_irc.color.item_lag_counting]] *irc.color.item_lag_counting*
** 説明: `カウント中の遅延インジケータの色 (pong がサーバから返らない場合、遅延は増加する)`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `default`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `default`)
* [[option_irc.color.item_lag_finished]] *irc.color.item_lag_finished*
** 説明: `pong がサーバから返った場合の、遅延インジケータの色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `yellow`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `yellow`)
* [[option_irc.color.message_join]] *irc.color.message_join*
** 説明: `参加メッセージの色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `green`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `green`)
* [[option_irc.color.message_quit]] *irc.color.message_quit*
** 説明: `退出/終了 メッセージの色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `red`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `red`)
* [[option_irc.color.mirc_remap]] *irc.color.mirc_remap*
** 説明: `メッセージに含まれる mirc カラーのマッピングをハッシュテーブルで変更: キーは "fg,bg" で -1(指定無し) から 15 までの整数、 値は WeeChat 色名か色番号 (フォーマットは: "1,-1:color1;2,7:color2")、例: "1,-1:darkgray;1,2:white,blue" はテキスト色が黒のものを "darkgray" に、背景色が青でテキスト色が黒のものを "white,blue" に変更; IRC コードに対するデフォルトの WeeChat 色は、0:白、1:黒、2:青、3:緑、4:ライトレッド、5:赤、6:赤紫、7:茶色、8:黄色、9:ライトグリーン、10:シアン、11:ライトシアン、12:ライトブルー、13:ライトマゼンタ、14:灰色、15:白`
@@ -46,22 +46,22 @@
* [[option_irc.color.notice]] *irc.color.notice*
** 説明: `notices に含まれるテキスト "Notice" の色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `green`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `green`)
* [[option_irc.color.reason_quit]] *irc.color.reason_quit*
** 説明: `退出/終了メッセージに含まれる理由の色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `default`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `default`)
* [[option_irc.color.topic_new]] *irc.color.topic_new*
** 説明: `新しいチャンネルトピックの色 (トピックが変更されたとき)`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `white`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `white`)
* [[option_irc.color.topic_old]] *irc.color.topic_old*
** 説明: `古いチャンネルトピックの色 (トピックが変更されたとき)`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `default`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `default`)
* [[option_irc.look.buffer_switch_autojoin]] *irc.look.buffer_switch_autojoin*
** 説明: `自動で参加した場合に、自動的にチャンネルバッファを移動 (サーバオプション "autojoin" と共に使用)`
@@ -154,22 +154,22 @@
** 値: on, off (デフォルト値: `on`)
* [[option_irc.look.highlight_channel]] *irc.look.highlight_channel*
-** 説明: `comma separated list of words to highlight in channel buffers (case insensitive, use "(?-i)" at beginning of words to make them case sensitive; special variables $nick, $channel and $server are replaced by their value), these words are added to buffer property "highlight_words" only when buffer is created (it does not affect current buffers), an empty string disables default highlight on nick, examples: "$nick", "(?-i)$nick"`
+** 説明: `現在のバッファでハイライトする単語のコンマ区切りリスト (大文字小文字を区別しない、"(?-i)" を単語の最初につければ大文字小文字を区別する; 特殊変数 $nick、$channel、$server はそれぞれの値に置換される)、これらの単語は、バッファの作成時にバッファプロパティ "highlight_words" に追加される (既存のバッファには影響なし)、空文字列はニックネームに関するデフォルトのハイライトを無効にする、例: "$nick", "(?-i)$nick"`
** タイプ: 文字列
** 値: 未制約文字列 (デフォルト値: `"$nick"`)
* [[option_irc.look.highlight_pv]] *irc.look.highlight_pv*
-** 説明: `comma separated list of words to highlight in private buffers (case insensitive, use "(?-i)" at beginning of words to make them case sensitive; special variables $nick, $channel and $server are replaced by their value), these words are added to buffer property "highlight_words" only when buffer is created (it does not affect current buffers), an empty string disables default highlight on nick, examples: "$nick", "(?-i)$nick"`
+** 説明: `プライベートバッファでハイライトする単語のコンマ区切りリスト (大文字小文字を区別しない、"(?-i)" を単語の最初につければ大文字小文字を区別する; 特殊変数 $nick、$channel、$server はそれぞれの値に置換される)、これらの単語は、バッファの作成時にバッファプロパティ "highlight_words" に追加される (既存のバッファには影響なし)、空文字列はニックネームに関するデフォルトのハイライトを無効にする、例: "$nick", "(?-i)$nick"`
** タイプ: 文字列
** 値: 未制約文字列 (デフォルト値: `"$nick"`)
* [[option_irc.look.highlight_server]] *irc.look.highlight_server*
-** 説明: `comma separated list of words to highlight in server buffers (case insensitive, use "(?-i)" at beginning of words to make them case sensitive; special variables $nick, $channel and $server are replaced by their value), these words are added to buffer property "highlight_words" only when buffer is created (it does not affect current buffers), an empty string disables default highlight on nick, examples: "$nick", "(?-i)$nick"`
+** 説明: `サーババッファでハイライトする単語のコンマ区切りリスト (大文字小文字を区別しない、"(?-i)" を単語の最初につければ大文字小文字を区別する; 特殊変数 $nick、$channel、$server はそれぞれの値に置換される)、これらの単語は、バッファの作成時にバッファプロパティ "highlight_words" に追加される (既存のバッファには影響なし)、空文字列はニックネームに関するデフォルトのハイライトを無効にする、例: "$nick", "(?-i)$nick"`
** タイプ: 文字列
** 値: 未制約文字列 (デフォルト値: `"$nick"`)
* [[option_irc.look.highlight_tags_restrict]] *irc.look.highlight_tags_restrict*
-** 説明: `restrict highlights to these tags on irc buffers (to have highlight on user messages but not server messages); tags must be separated by a comma and "+" can be used to make a logical "and" between tags; tags can start or end with "*" to match more than one tag; an empty value allows highlight on any tag`
+** 説明: `irc バッファでハイライトを禁止するタグ (ユーザメッセージをハイライトして、サーバメッセージをハイライトしない); タグの区切り文字はコンマ、論理積を取る場合には "+" 使ってください; 1 つ以上のタグにマッチさせるには各タグの最初と最後に "*" をつけてください; 任意のタグをハイライトさせるには空値を指定してください`
** タイプ: 文字列
** 値: 未制約文字列 (デフォルト値: `"irc_privmsg,irc_notice"`)
@@ -254,12 +254,12 @@
** 値: auto, never, always (デフォルト値: `auto`)
* [[option_irc.look.notice_welcome_redirect]] *irc.look.notice_welcome_redirect*
-** 説明: `automatically redirect channel welcome notices to the channel buffer; such notices have the nick as target but a channel name in beginning of notice message, for example notices sent by freenode server which look like: "[#channel] Welcome to this channel..."`
+** 説明: `ようこそ通知メッセージは対象となるバッファに自動リダイレクト; ようこそ通知の通知先はニックネームとなっていますが、通知メッセージの最初チャンネル名が含まれています、freenode サーバが送信する通知メッセージの例: "[#channel] Welcome to this channel..."`
** タイプ: ブール
** 値: on, off (デフォルト値: `on`)
* [[option_irc.look.notice_welcome_tags]] *irc.look.notice_welcome_tags*
-** 説明: `comma separated list of tags used in a welcome notices redirected to a channel, for example: "notify_private"`
+** 説明: `ようこそ通知に使われ、チャンネルに転送するタグのコンマ区切りリスト、例えば: "notify_private"`
** タイプ: 文字列
** 値: 未制約文字列 (デフォルト値: `""`)
@@ -304,7 +304,7 @@
** 値: on, off (デフォルト値: `on`)
* [[option_irc.look.smart_filter_delay]] *irc.look.smart_filter_delay*
-** 説明: `delay for filtering join/part/quit messages (in minutes): if the nick did not speak during the last N minutes, the join/part/quit is filtered`
+** 説明: `参加/退出/終了メッセージをフィルタするまでの遅延時間 (分単位): ニックネームが N 分以上発言しなかった場合、参加/退出/終了メッセージをフィルタする`
** タイプ: 整数
** 値: 1 .. 10080 (デフォルト値: `5`)
@@ -319,7 +319,7 @@
** 値: 0 .. 10080 (デフォルト値: `30`)
* [[option_irc.look.smart_filter_mode]] *irc.look.smart_filter_mode*
-** 説明: `enable smart filter for "mode" messages: "*" to filter all modes, "xyz" to filter only modes x/y/z, "-xyz" to filter all modes but not x/y/z; examples: "ovh": filter modes o/v/h, "-bkl": filter all modes but not b/k/l`
+** 説明: `"mode" 変更メッセージに対するスマートフィルタを有効化する: すべてのモード変更メッセージをフィルタするには "*"、x/y/z モードの変更メッセージをフィルタするには "xyz"、x/y/z モード以外のモード変更メッセージをフィルタするには "-xyz"; 例: "ovh": o/v/h モードの変更メッセージをフィルタする、"-bkl": b/k/l モード以外のモード変更メッセージをフィルタ`
** タイプ: 文字列
** 値: 未制約文字列 (デフォルト値: `"ovh"`)
@@ -354,7 +354,7 @@
** 値: 0 .. 86400 (デフォルト値: `1800`)
* [[option_irc.network.ban_mask_default]] *irc.network.ban_mask_default*
-** 説明: `default ban mask for commands /ban, /unban and /kickban; variables $nick, $user and $host are replaced by their values (extracted from "nick!user@host"); this default mask is used only if WeeChat knows the host for the nick`
+** 説明: `/ban、/unban、/kickban コマンドが使うデフォルトの禁止マスク; 変数 $nick、$user、$host はそれぞれの値に置換 ("nick!user@host" から展開) されます; このデフォルトマスクはニックネームのホスト名がわかる場合のみ利用されます`
** タイプ: 文字列
** 値: 未制約文字列 (デフォルト値: `"*!$user@$host"`)
@@ -364,7 +364,7 @@
** 値: on, off (デフォルト値: `on`)
* [[option_irc.network.colors_send]] *irc.network.colors_send*
-** 説明: `allow user to send colors with special codes (ctrl-c + a code and optional color: b=bold, cxx=color, cxx,yy=color+background, i=italic, o=disable color/attributes, r=reverse, u=underline)`
+** 説明: `特別なコードを使ってユーザが色を送信することを許可 (ctrl-c + 色コードと任意の色: b=太字、cxx=テキスト色、cxx,yy=テキスト色+背景色、i=イタリック、o=色や属性の無効化、r=反転、u=下線)`
** タイプ: ブール
** 値: on, off (デフォルト値: `on`)
@@ -374,7 +374,7 @@
** 値: 0 .. 604800 (デフォルト値: `60`)
* [[option_irc.network.lag_max]] *irc.network.lag_max*
-** 説明: `maximum lag (in seconds): if this lag is reached, WeeChat will consider that the answer from server (pong) will never be received and will give up counting the lag (0 = never give up)`
+** 説明: `遅延時間の最大値 (秒単位): 遅延時間がこの値よりも大きくなった場合、WeeChat はサーバからの応答 (pong) が到着しないと考え、遅延時間の計測を中止します (0 = 遅延時間の計測を中止しない)`
** タイプ: 整数
** 値: 0 .. 604800 (デフォルト値: `1800`)
@@ -384,7 +384,7 @@
** 値: 0 .. 86400000 (デフォルト値: `500`)
* [[option_irc.network.lag_reconnect]] *irc.network.lag_reconnect*
-** 説明: `reconnect to server if lag is greater than or equal to this value (in seconds, 0 = never reconnect); this value must be less than or equal to irc.network.lag_max`
+** 説明: `遅延時間がこの値以上に長くなった場合は再接続 (秒単位、0 = 再接続しない); この値は必ず irc.network.lag_max 以下にしてください`
** タイプ: 整数
** 値: 0 .. 604800 (デフォルト値: `0`)
@@ -434,7 +434,7 @@
** 値: on, off (デフォルト値: `off`)
* [[option_irc.server_default.autojoin]] *irc.server_default.autojoin*
-** 説明: `comma separated list of channels to join after connection to server (and after executing command + delay if they are set); the channels that require a key must be at beginning of the list, and all the keys must be given after the channels (separated by a space) (example: "#channel1,#channel2,#channel3 key1,key2" where #channel1 and #channel2 are protected by key1 and key2) (note: content is evaluated, see /help eval)`
+** 説明: `サーバに接続した後 (設定されていればさらにコマンドを実行し、遅延時間待った後) に参加するチャンネルのコンマ区切りリスト;鍵が必要なチャンネルはリストの最初に指定し、すべての鍵はチャンネルの後に指定してください (チャンネルと鍵の区切りは空白) (例: "#channel1,#channel2,#channel3 key1,key2" この場合 #channel1 と #channel2 への参加に必要な鍵はそれぞれ key1 と key2) (注意: 値は評価されます、/help eval を参照)`
** タイプ: 文字列
** 値: 未制約文字列 (デフォルト値: `""`)
@@ -474,12 +474,12 @@
** 値: 未制約文字列 (デフォルト値: `""`)
* [[option_irc.server_default.command]] *irc.server_default.command*
-** 説明: `command(s) to run after connection to server and before auto-join of channels (many commands can be separated by ";", use "\;" for a semicolon, special variables $nick, $channel and $server are replaced by their value) (note: content is evaluated, see /help eval)`
+** 説明: `サーバに接続した後、チャンネルに自動参加する前に実行するコマンド (";" で分けて 複数のコマンドを列挙できます、セミコロンは "\;" のように使ってください、特殊変数 $nick、$channel、$server はそれぞれの値に置換されます) (注意: 値は評価されます、/help eval を参照)`
** タイプ: 文字列
** 値: 未制約文字列 (デフォルト値: `""`)
* [[option_irc.server_default.command_delay]] *irc.server_default.command_delay*
-** 説明: `delay (in seconds) after execution of command and before auto-join of channels (example: give some time for authentication before joining channels)`
+** 説明: `コマンドを実行して、チャンネルに自動参加するまでの遅延時間 (秒単位) (例: 認証に時間がかかる場合にチャンネル参加前に少し時間を空ける)`
** タイプ: 整数
** 値: 0 .. 3600 (デフォルト値: `0`)
@@ -489,7 +489,7 @@
** 値: 1 .. 3600 (デフォルト値: `60`)
* [[option_irc.server_default.default_msg_kick]] *irc.server_default.default_msg_kick*
-** 説明: `default kick message used by commands "/kick" and "/kickban" (special variables $nick, $channel and $server are replaced by their value)`
+** 説明: `"/kick" と "/kickban" コマンドが使うデフォルトのキックメッセージ (特殊変数 $nick、$channel、$server はそれぞれの値に置換されます)`
** タイプ: 文字列
** 値: 未制約文字列 (デフォルト値: `""`)
@@ -524,7 +524,7 @@
** 値: 未制約文字列 (デフォルト値: `""`)
* [[option_irc.server_default.password]] *irc.server_default.password*
-** 説明: `password for server (note: content is evaluated, see /help eval)`
+** 説明: `サーバのパスワード (注意: 値は評価されます、/help eval を参照してください)`
** タイプ: 文字列
** 値: 未制約文字列 (デフォルト値: `""`)
diff --git a/doc/ja/autogen/user/logger_options.txt b/doc/ja/autogen/user/logger_options.txt
index 8bb392804..b0ab02134 100644
--- a/doc/ja/autogen/user/logger_options.txt
+++ b/doc/ja/autogen/user/logger_options.txt
@@ -1,12 +1,12 @@
* [[option_logger.color.backlog_end]] *logger.color.backlog_end*
** 説明: `バックログの最終行の色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `default`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `default`)
* [[option_logger.color.backlog_line]] *logger.color.backlog_line*
** 説明: `バックログ行の色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `default`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `default`)
* [[option_logger.file.auto_log]] *logger.file.auto_log*
** 説明: `バッファの内容をファイルに自動的に保存 (バッファのログ保存が無効化されていない限り)`
diff --git a/doc/ja/autogen/user/relay_options.txt b/doc/ja/autogen/user/relay_options.txt
index d913d9f62..d4d5b8d63 100644
--- a/doc/ja/autogen/user/relay_options.txt
+++ b/doc/ja/autogen/user/relay_options.txt
@@ -1,47 +1,47 @@
* [[option_relay.color.client]] *relay.color.client*
** 説明: `クライアント説明用のテキスト色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `cyan`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `cyan`)
* [[option_relay.color.status_active]] *relay.color.status_active*
** 説明: `"接続済み" 状態のテキスト色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `lightblue`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `lightblue`)
* [[option_relay.color.status_auth_failed]] *relay.color.status_auth_failed*
** 説明: `"認証失敗" 状態のテキスト色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `lightred`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `lightred`)
* [[option_relay.color.status_connecting]] *relay.color.status_connecting*
** 説明: `"接続中" 状態のテキスト色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `yellow`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `yellow`)
* [[option_relay.color.status_disconnected]] *relay.color.status_disconnected*
** 説明: `"接続切断" 状態のテキスト色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `lightred`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `lightred`)
* [[option_relay.color.status_waiting_auth]] *relay.color.status_waiting_auth*
** 説明: `"認証待ち" 状態のテキスト色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `brown`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `brown`)
* [[option_relay.color.text]] *relay.color.text*
** 説明: `リレーバッファ内のテキスト色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `default`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `default`)
* [[option_relay.color.text_bg]] *relay.color.text_bg*
** 説明: `リレーバッファ内の背景色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `default`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `default`)
* [[option_relay.color.text_selected]] *relay.color.text_selected*
** 説明: `リレーバッファ内の選択行のテキスト色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `white`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `white`)
* [[option_relay.irc.backlog_max_minutes]] *relay.irc.backlog_max_minutes*
** 説明: `IRC チャンネルごとのバックログの最大時間 (分) (0 = 制限無し、例: 1440 = 1 日、10080 = 1 週間、43200 = 1 ヶ月、525600 = 1 年間)`
@@ -79,7 +79,7 @@
** 値: 0 .. 65535 (デフォルト値: `256`)
* [[option_relay.network.allowed_ips]] *relay.network.allowed_ips*
-** 説明: `POSIX extended regular expression with IPs allowed to use relay (case insensitive, use "(?-i)" at beginning to make it case sensitive); if IPv6 is enabled and that connection is made using IPv4, it will be IPv4-mapped IPv6 address (like: "::ffff:127.0.0.1"), example: "^((::ffff:)?123.45.67.89|192.160.*)$"`
+** 説明: `リレーの利用をを許可する IP アドレスの POSIX 拡張正規表現 (大文字小文字の区別無し、最初に "(?-i)" をつければ区別有り); IPv6 が有効で IPv4 を使って接続している場合、IPv6 アドレスを IPv4 にマッピングしたもの (例: "::ffff:127.0.0.1") が使われます、例: "^((::ffff:)?123.45.67.89|192.160.*)$"`
** タイプ: 文字列
** 値: 未制約文字列 (デフォルト値: `""`)
@@ -104,7 +104,7 @@
** 値: 1 .. 1024 (デフォルト値: `5`)
* [[option_relay.network.password]] *relay.network.password*
-** 説明: `password required by clients to access this relay (empty value means no password required) (note: content is evaluated, see /help eval)`
+** 説明: `このリレーを利用するためにクライアントが必要なパスワード (空の場合パスワードなし) (注意: 値は評価されます、/help eval を参照してください)`
** タイプ: 文字列
** 値: 未制約文字列 (デフォルト値: `""`)
@@ -114,7 +114,7 @@
** 値: 未制約文字列 (デフォルト値: `"%h/ssl/relay.pem"`)
* [[option_relay.network.websocket_allowed_origins]] *relay.network.websocket_allowed_origins*
-** 説明: `POSIX extended regular expression with origins allowed in websockets (case insensitive, use "(?-i)" at beginning to make it case sensitive), example: "^http://(www\.)?example\.(com|org)"`
+** 説明: `ウェブソケットに使うことを許可する origin の "POSIX 拡張正規表現 (大文字小文字を区別しない、"(?-i)" を先頭に置くと大文字小文字を区別する)、例: "^http://(www\.)?example\.(com|org)"`
** タイプ: 文字列
** 値: 未制約文字列 (デフォルト値: `""`)
diff --git a/doc/ja/autogen/user/rmodifier_commands.txt b/doc/ja/autogen/user/rmodifier_commands.txt
index b55d0b5e1..a6a405609 100644
--- a/doc/ja/autogen/user/rmodifier_commands.txt
+++ b/doc/ja/autogen/user/rmodifier_commands.txt
@@ -8,24 +8,24 @@
missing
default -yes
- list: list all rmodifiers
-listdefault: list default rmodifiers
- add: add a rmodifier
- name: name of rmodifier
- modifiers: comma separated list of modifiers
- groups: action on groups captured in regular expression (inside parentheses): comma separated list of groups (from 1 to 9) with optional "*" after number to hide the group
- regex: POSIX extended regular expression (case insensitive, can start by "(?-i)" to become case sensitive)
- del: delete a rmodifier
- -all: delete all rmodifiers
- missing: add missing rmodifiers
- default: restore default rmodifiers
+ list: 全ての rmodifier をリストアップ
+listdefault: デフォルトの rmodifier をリストアップ
+ add: rmodifier を追加
+ name: rmodifier の名前
+ modifiers: rmodifier のコンマ区切りリスト
+ groups: 正規表現にマッチするグループに対するアクション (括弧内): グループ (1 から 9) のコンマ区切りリスト、グループを隠すには番号の後ろに任意で "*" をつける
+ regex: POSIX 拡張正規表現 (大文字小文字の区別無し、"(?-i)" で始めれば区別有り)
+ del: rmodifier を削除
+ -all: 全ての rmodifier を削除
+ missing: 見つからない rmodifier を追加
+ default: デフォルトの rmodifier に戻す
-Examples:
- hide everything typed after a command /password:
+例:
+ コマンド /password に続く入力は全て隠す:
/rmodifier add password input_text_display 1,2* ^(/password +)(.*)
- delete rmodifier "password":
+ rmodifier "password" を削除:
/rmodifier del password
- delete all rmodifiers:
+ 全ての rmodifiers を削除:
/rmodifier del -all
----
diff --git a/doc/ja/autogen/user/script_options.txt b/doc/ja/autogen/user/script_options.txt
index b9f18de44..1d4fd213e 100644
--- a/doc/ja/autogen/user/script_options.txt
+++ b/doc/ja/autogen/user/script_options.txt
@@ -1,132 +1,132 @@
* [[option_script.color.status_autoloaded]] *script.color.status_autoloaded*
** 説明: `"自動ロード" 状態 ("a") に対応する色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `cyan`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `cyan`)
* [[option_script.color.status_held]] *script.color.status_held*
** 説明: `"ホールド" 状態 ("H") に対応する色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `white`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `white`)
* [[option_script.color.status_installed]] *script.color.status_installed*
** 説明: `"インストール済み" 状態 ("i") に対応する色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `lightcyan`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `lightcyan`)
* [[option_script.color.status_obsolete]] *script.color.status_obsolete*
** 説明: `"アップデートが必要" 状態 ("N") に対応する色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `lightmagenta`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `lightmagenta`)
* [[option_script.color.status_popular]] *script.color.status_popular*
** 説明: `"人気" 状態 ("*") に対応する色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `yellow`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `yellow`)
* [[option_script.color.status_running]] *script.color.status_running*
** 説明: `"実行中" 状態 ("r") に対応する色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `lightgreen`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `lightgreen`)
* [[option_script.color.status_unknown]] *script.color.status_unknown*
** 説明: `"未定義" 状態 ("?") に対応する色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `lightred`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `lightred`)
* [[option_script.color.text]] *script.color.text*
** 説明: `スクリプトバッファのテキスト色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `default`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `default`)
* [[option_script.color.text_bg]] *script.color.text_bg*
** 説明: `スクリプトバッファ内の背景色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `default`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `default`)
* [[option_script.color.text_bg_selected]] *script.color.text_bg_selected*
** 説明: `スクリプトバッファ内の選択行の背景色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `red`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `red`)
* [[option_script.color.text_date]] *script.color.text_date*
** 説明: `スクリプトバッファ内の日付のテキスト色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `default`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `default`)
* [[option_script.color.text_date_selected]] *script.color.text_date_selected*
** 説明: `スクリプトバッファ内の日付が選択された場合のテキスト色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `white`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `white`)
* [[option_script.color.text_delimiters]] *script.color.text_delimiters*
** 説明: `スクリプトバッファ内の区切り文字のテキスト色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `default`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `default`)
* [[option_script.color.text_description]] *script.color.text_description*
** 説明: `スクリプトバッファ内の説明のテキスト色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `default`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `default`)
* [[option_script.color.text_description_selected]] *script.color.text_description_selected*
** 説明: `スクリプトバッファ内の説明が選択された場合のテキスト色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `white`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `white`)
* [[option_script.color.text_extension]] *script.color.text_extension*
** 説明: `スクリプトバッファ内の拡張子のテキスト色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `default`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `default`)
* [[option_script.color.text_extension_selected]] *script.color.text_extension_selected*
** 説明: `スクリプトバッファ内の拡張子が選択された場合のテキスト色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `white`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `white`)
* [[option_script.color.text_name]] *script.color.text_name*
** 説明: `スクリプトバッファ内のスクリプト名のテキスト色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `cyan`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `cyan`)
* [[option_script.color.text_name_selected]] *script.color.text_name_selected*
** 説明: `スクリプトバッファ内のスクリプト名が選択された場合のテキスト色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `lightcyan`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `lightcyan`)
* [[option_script.color.text_selected]] *script.color.text_selected*
** 説明: `スクリプトバッファ内の選択行のテキスト色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `white`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `white`)
* [[option_script.color.text_tags]] *script.color.text_tags*
** 説明: `スクリプトバッファ内のタグのテキスト色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `brown`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `brown`)
* [[option_script.color.text_tags_selected]] *script.color.text_tags_selected*
** 説明: `スクリプトバッファ内のタグが選択された場合のテキスト色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `yellow`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `yellow`)
* [[option_script.color.text_version]] *script.color.text_version*
** 説明: `スクリプトバッファ内のバージョンのテキスト色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `magenta`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `magenta`)
* [[option_script.color.text_version_loaded]] *script.color.text_version_loaded*
** 説明: `スクリプトバッファ内のロード済みバージョンのテキスト色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `default`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `default`)
* [[option_script.color.text_version_loaded_selected]] *script.color.text_version_loaded_selected*
** 説明: `スクリプトバッファ内のロード済みバージョンが選択された場合のテキスト色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `white`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `white`)
* [[option_script.color.text_version_selected]] *script.color.text_version_selected*
** 説明: `スクリプトバッファ内のバージョンが選択された場合のテキスト色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `lightmagenta`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `lightmagenta`)
* [[option_script.look.columns]] *script.look.columns*
** 説明: `スクリプトバッファでの表示列のフォーマット: 以下の列識別子がそれぞれの値で置き換えられます: %a=作者、%d=説明、%D=追加日、%e=拡張子、%l=言語、%L=ライセンス、%n=拡張子を含む名前、%N=名前、%r=依存、%s=状態、%t=タグ、%u=アップデート日、%v=バージョン、%V=ロード済みバージョン、%w=min_weechat、%W=max_weechat)`
diff --git a/doc/ja/autogen/user/weechat_commands.txt b/doc/ja/autogen/user/weechat_commands.txt
index 21e93003c..1b02b5d0d 100644
--- a/doc/ja/autogen/user/weechat_commands.txt
+++ b/doc/ja/autogen/user/weechat_commands.txt
@@ -77,50 +77,50 @@ message: 離席メッセージ (メッセージが無い場合は、離席状態
get <property>
<number>|<name>
- list: list buffers (without argument, this list is displayed)
- clear: clear buffer content (number for a buffer, -merged for merged buffers, -all for all buffers, or nothing for current buffer)
- move: move buffer in the list (may be relative, for example -1)
- swap: swap two buffers (swap with current buffer if only one number/name given)
- merge: merge current buffer to another buffer (chat area will be mix of both buffers)
- (by default ctrl-x switches between merged buffers)
- unmerge: unmerge buffer from other buffers which have same number
-renumber: renumber buffers (works only if option weechat.look.buffer_auto_renumber is off)
- close: close buffer (number/range or name is optional)
- notify: set notify level for current buffer: this level determines whether buffer will be added to hotlist or not:
- none: never
- highlight: for highlights only
- message: for messages from users + highlights
- all: all messages
- reset: reset to default value (all)
-localvar: display local variables for current buffer
- set: set a property for current buffer
- get: display a property of current buffer
- number: jump to buffer by number, possible prefix:
- '+': relative jump, add number to current
- '-': relative jump, sub number to current
- '*': jump to number, using option "weechat.look.jump_current_to_previous_buffer"
- name: jump to buffer by (partial) name
-
-Examples:
- clear current buffer:
+ list: バッファをリストアップ (引数無しの場合、このリストが表示されます)
+ clear: バッファの内容を削除 (number はバッファ番号、マージバッファに対しては -merged、全てのバッファに対しては -all、何も無ければ現在のバッファ)
+ move: リストにバッファを移動 (相対指定も可能、例えば -1)
+ swap: 2 つのバッファを入れ替え (現在のバッファと引数で与えた番号/名称で指定されるバッファを入れ替える)
+ merge: 現在のバッファを他のバッファにマージ (2 つのバッファのチャットエリアが一緒になります)
+ (デフォルトでは ctrl-x でマージバッファの切り替え)
+ unmerge: 同じ番号を持つ他のバッファとのマージを解除
+renumber: バッファを記憶 (weechat.look.buffer_auto_renumber オプションがオフの場合にのみ有効)
+ close: バッファを閉じる (番号/範囲または名前は任意)
+ notify: 現在のバッファの通知レベルを設定: このレベルでバッファがホットリストに追加されるかどうかを定義します:
+ none: 通知しない
+ highlight: ハイライトがあった場合のみ通知
+ message: ユーザからのメッセージとハイライトがあった場合に通知
+ all: 全てのメッセージを通知
+ reset: デフォルトの値 (all) にリセット
+localvar: 現在のバッファのローカル変数を表示
+ set: 現在のバッファのプロパティを設定
+ get: 現在のバッファのプロパティを表示
+ number: 番号でバッファ移動、可能なプレフィックス:
+ '+': 相対移動、現在の番号に数を足す
+ '-': 相対移動、現在の番号から数を引く
+ '*': 番号に移動、オプション "weechat.look.jump_current_to_previous_buffer" が使われる
+ name: バッファ名 (一部) でバッファに移動
+
+例:
+ 現在のバッファの内容を消去:
/buffer clear
- move buffer to number 5:
+ バッファを 5 番に移動:
/buffer move 5
- swap buffer 1 with 3:
+ バッファ 1 番と 3 番を入れ替え:
/buffer swap 1 3
- swap buffer #weechat with current buffer:
+ 現在のバッファと #weechat バッファを入れ替え:
/buffer swap #weechat
- merge with core buffer:
+ コアバッファとマージ:
/buffer merge 1
- unmerge buffer:
+ バッファマージの解除:
/buffer unmerge
- close current buffer:
+ 現在のバッファを閉じる:
/buffer close
- close buffers 5 to 7:
+ バッファ番号 5 から 7 を閉じる:
/buffer close 5-7
- jump to #weechat:
+ #weechat バッファに移動:
/buffer #weechat
- jump to next buffer:
+ 次のバッファに移動:
/buffer +1
----
@@ -193,24 +193,24 @@ stop: カーソルモードを終了
mouse|cursor [verbose]
hdata [free]
- list: list plugins with debug levels
- set: set debug level for plugin
- plugin: name of plugin ("core" for WeeChat core)
- level: debug level for plugin (0 = disable debug)
- dump: save memory dump in WeeChat log file (same dump is written when WeeChat crashes)
- buffer: dump buffer content with hexadecimal values in log file
- color: display infos about current color pairs
- cursor: toggle debug for cursor mode
- dirs: display directories
- hdata: display infos about hdata (with free: remove all hdata in memory)
- hooks: display infos about hooks
-infolists: display infos about infolists
- libs: display infos about external libraries used
- memory: display infos about memory usage
- mouse: toggle debug for mouse
- tags: display tags for lines
- term: display infos about terminal
- windows: display windows tree
+ list: デバッグレベルの設定されたプラグインをリストアップ
+ set: プラグインのデバッグレベルを設定
+ plugin: プラグインの名前 ("core" は WeeChat コアを意味する)
+ level: プラグインのデバッグレベル (0 はデバッグの無効化)
+ dump: WeeChat ログファイルにメモリダンプを保存 (WeeChat がクラッシュした場合と同じダンプが書き込まれます)
+ buffer: ログファイルに 16 進値でバッファの内容をダンプ
+ color: 現在の色ペアに関する情報を表示
+ cursor: カーソルモードのデバッグを切り替え
+ dirs: ディレクトリを表示
+ hdata: hdata に関する情報を表示 (free を付ければ: メモリから全ての hdata を削除)
+ hooks: フックに関する情報を表示
+infolists: infolist に関する情報を表示
+ libs: 使用中の外部ライブラリに関する情報を表示
+ memory: メモリ使用量に関する情報を表示
+ mouse: マウスのデバックを切り替え
+ tags: 行のタグを表示
+ term: ターミナルに関する情報を表示
+ windows: ウィンドウツリーの情報を表示
----
[[command_weechat_eval]]
@@ -220,43 +220,43 @@ infolists: display infos about infolists
/eval [-n] <expression>
[-n] -c <expression1> <operator> <expression2>
- -n: display result without sending it to buffer (debug mode)
- -c: evaluate as condition: use operators and parentheses, return a boolean value ("0" or "1")
-expression: expression to evaluate, variables with format ${variable} are replaced (see below)
- operator: a logical or comparison operator:
- - logical operators:
- && boolean "and"
- || boolean "or"
- - comparison operators:
- == equal
- != not equal
- <= less or equal
- < less
- >= greater or equal
- > greater
- =~ is matching POSIX extended regex
- !~ is NOT matching POSIX extended regex
-
-An expression is considered as "true" if it is not NULL, not empty, and different from "0".
-The comparison is made using integers if the two expressions are valid integers.
-To force a string comparison, add double quotes around each expression, for example:
+ -n: 結果をバッファに送信せずに表示 (デバッグモード)
+ -c: 条件として評価: 演算子と括弧をを使い、ブール値 ("0" または "1") を返します
+expression: 評価する式、フォーマット、${variable} 型のフォーマットの変数は置換されます (以下を参照)
+ operator: 論理演算子や比較演算子:
+ - 論理演算子:
+ && ブール演算の "and"
+ || ブール演算の "or"
+ - 比較演算子:
+ == 等しい
+ != 等しくない
+ <= 以下
+ < より少ない
+ >= 以上
+ > より大きい
+ =~ 正規表現にマッチ
+ !~ 正規表現にマッチしない
+
+式が NULL でない場合、空でない場合、"0" でない場合、式は "真" と評価されます。
+両方の式が有効な整数である場合、比較は整数を使って行われます。
+文字列比較を強制するには、それぞれの式をダブルクォートで囲みます、例えば:
50 > 100 ==> 0
"50" > "100" ==> 1
-Some variables are replaced in expression, using the format ${variable}, variable can be, by order of priority :
- 1. a color (format: "color:xxx")
- 2. an info (format: "info:name,arguments", arguments are optional)
- 3. an option (format: "file.section.option")
- 4. a local variable in buffer
- 5. a hdata name/variable (the value is automatically converted to string), by default "window" and "buffer" point to current window/buffer.
-Format for hdata can be one of following:
- hdata.var1.var2...: start with a hdata (pointer must be known), and ask variables one after one (other hdata can be followed)
- hdata[list].var1.var2...: start with a hdata using a list, for example:
- ${buffer[gui_buffers].full_name}: full name of first buffer in linked list of buffers
- ${plugin[weechat_plugins].name}: name of first plugin in linked list of plugins
-For name of hdata and variables, please look at "Plugin API reference", function "weechat_hdata_get".
-
-Examples:
+式中の ${variable} 型のフォーマットの変数は置換さます。変数は以下の優先順位に従います。
+ 1. 色 (フォーマット: "color:xxx")
+ 2. 情報 (フォーマット: "info:name,arguments"、arguments は任意)
+ 3. オプション (フォーマット: "file.section.option")
+ 4. バッファのローカル変数
+ 5. hdata の名前/変数 (値は自動的に文字列に変換されます)、デフォルトでは "window" と "buffer" は現在のウィンドウ/バッファを指します。
+hdata のフォーマットは以下の 1 つです:
+ hdata.var1.var2...: hdata (ポインタは既知) で始まり、1 個ずつ変数を続ける (他の hdata を続けることも可能)
+ hdata(list).var1.var2...: リストを使って hdata を始める、例:
+ ${buffer[gui_buffers].full_name}: バッファリストにリンクされた最初のバッファのフルネーム
+ ${plugin[weechat_plugins].name}: プラグインリストにリンクされた最初のプラグインの名前
+hdata と変数の名前については、"プラグイン API リファレンス" の "weechat_hdata_get" 関数を参照してください。
+
+例:
/eval -n ${info:version} ==> 0.4.3
/eval -n ${weechat.look.scroll_amount} ==> 3
/eval -n ${window} ==> 0x2549aa0
@@ -282,52 +282,52 @@ Examples:
add <name> <buffer>[,<buffer>...] <tags> <regex>
del <name>|-all
- list: list all filters
- enable: enable filters (filters are enabled by default)
-disable: disable filters
- toggle: toggle filters
- name: filter name
- add: add a filter
- del: delete a filter
- -all: delete all filters
- buffer: comma separated list of buffers where filter is active:
- - this is full name including plugin (example: "irc.freenode.#weechat")
- - "*" means all buffers
- - a name starting with '!' is excluded
- - name can start or end with '*' to match many buffers
- tags: comma separated list of tags, for example "irc_join,irc_part,irc_quit"
- - logical "and": use "+" between tags (for example: "nick_toto+irc_action")
- - tags can start or end with '*'
- regex: POSIX extended regular expression to search in line
- - use '\t' to separate prefix from message, special chars like '|' must be escaped: '\|'
- - if regex starts with '!', then matching result is reversed (use '\!' to start with '!')
- - two regular expressions are created: one for prefix and one for message
- - regex are case insensitive, they can start by "(?-i)" to become case sensitive
-
-The default key alt+'=' toggles filtering on/off.
-
-Tags most commonly used:
+ list: 全てのフィルタをリストアップ
+ enable: フィルタを有効化 (フィルタはデフォルトで有効になっています)
+disable: フィルタを無効化
+ toggle: フィルタの有効無効を切り替え
+ name: フィルタの名前
+ add: フィルタを追加
+ del: フィルタを削除
+ -all: 全てのフィルタを削除
+ buffer: フィルタが有効化されているバッファのコンマ区切りリスト:
+ - これはプラグイン名を含む完全な名前です (例えば: "irc.freenode.#weechat")
+ - "*" は全てのバッファを意味します
+ - 名前が '!' から始まるものは除外されます
+ - 多くのバッファにマッチさせるためには名前を '*' から始めるか終わらせてください
+ tags: タグのコンマ区切りリスト、例えば "irc_join,irc_part,irc_quit"
+ - 論理積 "and": タグ同士を "+" でつなげる (例えば: "nick_toto+irc_action")
+ - タグの最初と最後には '*' を使うことができます
+ regex: 行単位検索の正規表現
+ - '\t' を使うと、プレフィックスをメッセージから分離できます。'|' 等の特別な文字は '\|' のようにエスケープしなければいけません
+ - 正規表現の最初に '!' が含まれる場合は、マッチ結果が反転されます (最初の '!' にマッチさせたければ、'\!' を使ってください)
+ - 2 種類の正規表現があります: 一方はプレフィックス用、他方はメッセージ用
+ - 正規表現は大文字小文字を区別しません、"(?-i)" から始まる場合は区別します
+
+デフォルトではキー alt+'=' でフィルタリングの on/off を切り替えられます。
+
+よく使われるタグ:
no_filter, no_highlight, no_log, log0..log9 (log level),
notify_none, notify_message, notify_private, notify_highlight,
- nick_xxx (xxx is nick in message), prefix_nick_ccc (ccc is color of nick),
- irc_xxx (xxx is command name or number, see /server raw or /debug tags),
+ nick_xxx (xxx はメッセージのニックネーム), prefix_nick_ccc (ccc はニックネームの色)
+ irc_xxx (xxx はコマンド名又は番号、/server raw または /debug tags で確認),
irc_numeric, irc_error, irc_action, irc_ctcp, irc_ctcp_reply, irc_smart_filter, away_info.
-To see tags for lines in buffers: /debug tags
+バッファ内でタグを見るには: /debug tags
-Examples:
- use IRC smart filter on all buffers:
+例:
+ 全てのバッファで IRC スマートフィルタを使用:
/filter add irc_smart * irc_smart_filter *
- use IRC smart filter on all buffers except those with "#weechat" in name:
+ 名前に "#weechat" を含むバッファを除いた全てのバッファで IRC スマートフィルタを使用:
/filter add irc_smart *,!*#weechat* irc_smart_filter *
- filter all IRC join/part/quit messages:
+ 全ての IRC join/part/quit メッセージをフィルタ:
/filter add joinquit * irc_join,irc_part,irc_quit *
- filter nicks displayed when joining channels or with /names:
+ チャンネルに入った時や /names で表示されるニックネームをフィルタ:
/filter add nicks * irc_366 *
- filter nick "toto" on IRC channel #weechat:
+ IRC チャンネル #weechat で "toto" を含むニックネームをフィルタ:
/filter add toto irc.freenode.#weechat nick_toto *
- filter IRC join/action messages from nick "toto":
+ ニックネーム "toto" からの IRC の参加/アクションメッセージをフィルタ:
/filter add toto * nick_toto+irc_join,nick_toto+irc_action *
- filter lines containing "weechat sucks" on IRC channel #weechat:
+ IRC チャンネル #weechat で "weechat sucks" を含む行をフィルタ:
/filter add sucks irc.freenode.#weechat * weechat sucks
----
@@ -473,7 +473,7 @@ listdefault: デフォルトキーをリストアップ
----
[[command_weechat_layout]]
-[command]*`layout`* manage buffers/windows layouts::
+[command]*`layout`* バッファ/ウィンドウレイアウトの管理::
----
/layout store [<name>] [buffers|windows]
@@ -482,17 +482,17 @@ listdefault: デフォルトキーをリストアップ
del [<name>] [buffers|windows]
rename <name> <new_name>
- store: store current buffers/windows in a layout
- apply: apply saved layout
- leave: leave current layout (does not update any layout)
- del: delete buffers and/or windows in a saved layout
- (if neither "buffers" nor "windows" is given after the name, the layout is deleted)
- rename: rename a layout
- name: name for saved layout (default is "default")
-buffers: save/apply only buffers (order of buffers)
-windows: save/apply only windows (buffer displayed by each window)
+ store: レイアウトに現在のバッファ/ウィンドウを保存
+ apply: 保存されたレイアウトを適用
+ leave: 現在のレイアウトを保持する (レイアウトを更新しない)
+ del: レイアウトとして保存されているバッファとウィンドウを削除
+ (名前の後に "バッファ" や "ウィンドウ" を指定しない場合、レイアウトを削除)
+ rename: レイアウトのリネーム
+ name: 保存されたレイアウトの名前 (初期状態は "default")
+buffers: バッファのみに対してレイアウトを保存/適用 (バッファの順番)
+windows: ウィンドウのみに対してレイアウトを保存/適用 (それぞれのウィンドウに表示されるバッファ)
-Without argument, this command displays saved layouts.
+引数無しでは、保存されたレイアウトを表示します。
----
[[command_weechat_mouse]]
@@ -654,36 +654,36 @@ file: 保存する設定ファイル (拡張子 ".conf" は不要)
set <name> <value>
del <name>
-passphrase: change the passphrase (without passphrase, data is stored as plain text in file sec.conf)
- -delete: delete passphrase
- decrypt: decrypt data still encrypted (it happens only if passphrase was not given on startup)
- -discard: discard all data still encrypted
- set: add or change secured data
- del: delete secured data
+passphrase: パスフレーズを変更 (パスフレーズがない場合、sec.conf ファイルに平文でデータを保存します)
+ -delete: パスフレーズを削除
+ decrypt: 暗号化されているデータを復号化 (起動時にパスフレーズが設定されていない場合に起きます)
+ -discard: 全ての暗号化データを破棄
+ set: 保護データを追加または変更
+ del: 保護データを削除
-Without argument, this command displays secured data in a new buffer.
+引数がない場合、新しいバッファに保護データを表示します。
-When a passphrase is used (data encrypted), it is asked by WeeChat on startup.
-It is possible to set environment variable "WEECHAT_PASSPHRASE" to prevent the prompt (this same variable is used by WeeChat on /upgrade).
+パスフレーズを利用する場合 (データが暗号化されている場合)、WeeChat は起動時にパスフレーズを尋ねます。
+環境変数 "WEECHAT_PASSPHRASE" を利用すれば入力を回避できます (WeeChat は /upgrade の時に同じ変数を利用します)。
-Secured data with format ${sec.data.xxx} can be used in:
- - command line argument "--run-command"
- - options weechat.startup.command_{before|after}_plugins
- - proxy options: username, password
- - irc server options: autojoin, command, password, sasl_{username|password}
- - option relay.network.password
- - command /eval.
+${sec.data.xxx} の形でフォーマットされた保護データは以下の様に利用できます:
+ - コマンドライン引数 "--run-command"
+ - weechat.startup.command_{before|after}_plugins オプション
+ - プロキシオプション: username、password
+ - irc サーバオプション: autojoin、command、password、sasl_{username|password}
+ - relay.network.password オプション
+ - /eval コマンド。
-Examples:
- set a passphrase:
+例:
+ パスフレーズを設定:
/secure passphrase this is my passphrase
- encrypt freenode SASL password:
+ freenode の SASL パスワードを暗号化:
/secure set freenode mypassword
/set irc.server.freenode.sasl_password "${sec.data.freenode}"
- encrypt oftc password for nickserv:
+ oftc の nickserv 用パスワードを暗号化:
/secure set oftc mypassword
/set irc.server.oftc.command "/msg nickserv identify ${sec.data.oftc}"
- alias to ghost the nick "mynick":
+ ニックネーム "mynick" を取り戻すためのエイリアス ghost を設定
/alias ghost /eval /msg -server freenode nickserv ghost mynick ${sec.data.freenode}
----
diff --git a/doc/ja/autogen/user/weechat_options.txt b/doc/ja/autogen/user/weechat_options.txt
index aa138966d..0379377ed 100644
--- a/doc/ja/autogen/user/weechat_options.txt
+++ b/doc/ja/autogen/user/weechat_options.txt
@@ -1,67 +1,67 @@
* [[option_weechat.color.bar_more]] *weechat.color.bar_more*
** 説明: `バーをスクロールする際の '+' のテキスト色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `lightmagenta`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `lightmagenta`)
* [[option_weechat.color.chat]] *weechat.color.chat*
** 説明: `チャットのテキスト色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `default`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `default`)
* [[option_weechat.color.chat_bg]] *weechat.color.chat_bg*
** 説明: `チャットの背景色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `default`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `default`)
* [[option_weechat.color.chat_buffer]] *weechat.color.chat_buffer*
** 説明: `バッファ名のテキスト色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `white`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `white`)
* [[option_weechat.color.chat_channel]] *weechat.color.chat_channel*
** 説明: `チャンネル名のテキスト色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `white`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `white`)
* [[option_weechat.color.chat_day_change]] *weechat.color.chat_day_change*
** 説明: `日付が変わった時に表示されるメッセージのテキスト色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `cyan`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `cyan`)
* [[option_weechat.color.chat_delimiters]] *weechat.color.chat_delimiters*
** 説明: `区切りのテキスト色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `green`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `green`)
* [[option_weechat.color.chat_highlight]] *weechat.color.chat_highlight*
** 説明: `ハイライトされたプレフィックスのテキスト色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `yellow`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `yellow`)
* [[option_weechat.color.chat_highlight_bg]] *weechat.color.chat_highlight_bg*
** 説明: `ハイライトされたプレフィックスの背景色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `magenta`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `magenta`)
* [[option_weechat.color.chat_host]] *weechat.color.chat_host*
** 説明: `ホスト名のテキスト色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `cyan`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `cyan`)
* [[option_weechat.color.chat_inactive_buffer]] *weechat.color.chat_inactive_buffer*
** 説明: `行へのフォーカスがなくなった場合の (バッファが他のバッファとマージされていて選択されていない場合の) のチャットのテキスト色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `default`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `default`)
* [[option_weechat.color.chat_inactive_window]] *weechat.color.chat_inactive_window*
** 説明: `ウィンドウへのフォーカスがなくなった場合 (選択されていないウィンドウ) のチャットのテキスト色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `default`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `default`)
* [[option_weechat.color.chat_nick]] *weechat.color.chat_nick*
** 説明: `チャットウィンドウ内のニックネームのテキスト色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `lightcyan`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `lightcyan`)
* [[option_weechat.color.chat_nick_colors]] *weechat.color.chat_nick_colors*
** 説明: `ニックネームのテキスト色 (コンマ区切りの色リスト、背景色は以下のフォーマットで指定: "fg:bg"、例: "lightred:blue")`
@@ -71,237 +71,237 @@
* [[option_weechat.color.chat_nick_offline]] *weechat.color.chat_nick_offline*
** 説明: `オフラインのニックネームのテキスト色 (ニックネームリストにも表示されない)`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `default`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `default`)
* [[option_weechat.color.chat_nick_offline_highlight]] *weechat.color.chat_nick_offline_highlight*
** 説明: `ハイライトされたオフラインのニックネームのテキスト色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `default`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `default`)
* [[option_weechat.color.chat_nick_offline_highlight_bg]] *weechat.color.chat_nick_offline_highlight_bg*
** 説明: `ハイライトされたオフラインのニックネームの背景色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `blue`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `blue`)
* [[option_weechat.color.chat_nick_other]] *weechat.color.chat_nick_other*
** 説明: `プライベートバッファ内の他のニックネームのテキスト色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `cyan`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `cyan`)
* [[option_weechat.color.chat_nick_prefix]] *weechat.color.chat_nick_prefix*
** 説明: `ニックネームプレフィックスの色 (プレフィックス中のニックネームの前に表示される文字列)`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `green`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `green`)
* [[option_weechat.color.chat_nick_self]] *weechat.color.chat_nick_self*
** 説明: `チャットウィンドウ内のローカルニックネームのテキスト色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `white`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `white`)
* [[option_weechat.color.chat_nick_suffix]] *weechat.color.chat_nick_suffix*
** 説明: `ニックネームサフィックスの色 (プレフィックス中のニックネームの後に表示される文字列)`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `green`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `green`)
* [[option_weechat.color.chat_prefix_action]] *weechat.color.chat_prefix_action*
** 説明: `アクションプレフィックスのテキスト色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `white`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `white`)
* [[option_weechat.color.chat_prefix_buffer]] *weechat.color.chat_prefix_buffer*
** 説明: `バッファ名のテキスト色 (多くのバッファが同じ番号を持つものにマージされている場合は、プレフィックスの前)`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `brown`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `brown`)
* [[option_weechat.color.chat_prefix_buffer_inactive_buffer]] *weechat.color.chat_prefix_buffer_inactive_buffer*
** 説明: `非アクティブバッファ名のテキスト色 (多くのバッファが同じ番号を持つものにマージされ、バッファが選択されていない場合は、プレフィックスの前)`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `default`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `default`)
* [[option_weechat.color.chat_prefix_error]] *weechat.color.chat_prefix_error*
** 説明: `エラープレフィックスのテキスト色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `yellow`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `yellow`)
* [[option_weechat.color.chat_prefix_join]] *weechat.color.chat_prefix_join*
** 説明: `join プレフィックスのテキスト色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `lightgreen`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `lightgreen`)
* [[option_weechat.color.chat_prefix_more]] *weechat.color.chat_prefix_more*
** 説明: `プレフィックスが長すぎる場合の '+' のテキスト色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `lightmagenta`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `lightmagenta`)
* [[option_weechat.color.chat_prefix_network]] *weechat.color.chat_prefix_network*
** 説明: `ネットワークプレフィックスのテキスト色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `magenta`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `magenta`)
* [[option_weechat.color.chat_prefix_quit]] *weechat.color.chat_prefix_quit*
** 説明: `quit プレフィックスのテキスト色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `lightred`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `lightred`)
* [[option_weechat.color.chat_prefix_suffix]] *weechat.color.chat_prefix_suffix*
** 説明: `サフィックスのテキスト色 (プレフィックスの後ろ)`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `green`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `green`)
* [[option_weechat.color.chat_read_marker]] *weechat.color.chat_read_marker*
** 説明: `未読データマーカーのテキスト色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `magenta`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `magenta`)
* [[option_weechat.color.chat_read_marker_bg]] *weechat.color.chat_read_marker_bg*
** 説明: `未読データマーカーの背景色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `default`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `default`)
* [[option_weechat.color.chat_server]] *weechat.color.chat_server*
** 説明: `サーバ名のテキスト色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `brown`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `brown`)
* [[option_weechat.color.chat_tags]] *weechat.color.chat_tags*
** 説明: `メッセージの後ろのタグのテキスト色 (/debug tags コマンドで表示)`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `red`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `red`)
* [[option_weechat.color.chat_text_found]] *weechat.color.chat_text_found*
** 説明: `テキスト検索にヒットした行のマーカーのテキスト色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `yellow`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `yellow`)
* [[option_weechat.color.chat_text_found_bg]] *weechat.color.chat_text_found_bg*
** 説明: `テキスト検索にヒットした行のマーカーの背景色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `lightmagenta`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `lightmagenta`)
* [[option_weechat.color.chat_time]] *weechat.color.chat_time*
** 説明: `チャットウィンドウ内の時間のテキスト色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `default`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `default`)
* [[option_weechat.color.chat_time_delimiters]] *weechat.color.chat_time_delimiters*
** 説明: `時間区切りのテキスト色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `brown`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `brown`)
* [[option_weechat.color.chat_value]] *weechat.color.chat_value*
** 説明: `値のテキスト色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `cyan`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `cyan`)
* [[option_weechat.color.emphasized]] *weechat.color.emphasized*
** 説明: `強調テキストの色 (テキスト検索する際など); このオプションは weechat.look.emphasized_attributes オプションが空文字列 (デフォルト値) の場合のみ使われます`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `yellow`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `yellow`)
* [[option_weechat.color.emphasized_bg]] *weechat.color.emphasized_bg*
** 説明: `強調テキストの背景色 (テキスト検索する際など); このオプションは weechat.look.emphasized_attributes オプションが空文字列 (デフォルト値) の場合のみ使われます`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `magenta`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `magenta`)
* [[option_weechat.color.input_actions]] *weechat.color.input_actions*
** 説明: `入力がアクションの場合のテキスト色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `lightgreen`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `lightgreen`)
* [[option_weechat.color.input_text_not_found]] *weechat.color.input_text_not_found*
** 説明: `入力行のテキスト検索に失敗した場合のテキスト色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `red`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `red`)
* [[option_weechat.color.nicklist_away]] *weechat.color.nicklist_away*
** 説明: `離席状態のニックネームのテキスト色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `cyan`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `cyan`)
* [[option_weechat.color.nicklist_group]] *weechat.color.nicklist_group*
** 説明: `ニックネームリスト内のグループのテキスト色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `green`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `green`)
* [[option_weechat.color.nicklist_offline]] *weechat.color.nicklist_offline*
** 説明: `オフラインのニックネームのテキスト色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `blue`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `blue`)
* [[option_weechat.color.separator]] *weechat.color.separator*
** 説明: `ウィンドウセパレータ (分割時) とバーセパレータ (ニックネームリスト等) の色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `blue`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `blue`)
* [[option_weechat.color.status_count_highlight]] *weechat.color.status_count_highlight*
** 説明: `ホットリスト内のハイライトメッセージ数のテキスト色 (ステータスバー)`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `magenta`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `magenta`)
* [[option_weechat.color.status_count_msg]] *weechat.color.status_count_msg*
** 説明: `ホットリスト内のメッセージ数のテキスト色 (ステータスバー)`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `brown`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `brown`)
* [[option_weechat.color.status_count_other]] *weechat.color.status_count_other*
** 説明: `ホットリスト内のその他のメッセージ数のテキスト色 (ステータスバー)`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `default`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `default`)
* [[option_weechat.color.status_count_private]] *weechat.color.status_count_private*
** 説明: `ホットリスト内のプライベートメッセージ数のテキスト色 (ステータスバー)`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `green`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `green`)
* [[option_weechat.color.status_data_highlight]] *weechat.color.status_data_highlight*
** 説明: `ハイライトメッセージを受け取ったバッファのテキスト色 (ステータスバー)`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `lightmagenta`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `lightmagenta`)
* [[option_weechat.color.status_data_msg]] *weechat.color.status_data_msg*
** 説明: `新しいメッセージを受け取ったバッファのテキスト色 (ステータスバー)`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `yellow`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `yellow`)
* [[option_weechat.color.status_data_other]] *weechat.color.status_data_other*
** 説明: `新しいデータ (メッセージ以外) を受け取ったバッファのテキスト色 (ステータスバー)`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `default`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `default`)
* [[option_weechat.color.status_data_private]] *weechat.color.status_data_private*
** 説明: `プライベートメッセージを受けとったバッファのテキスト色 (ステータスバー)`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `lightgreen`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `lightgreen`)
* [[option_weechat.color.status_filter]] *weechat.color.status_filter*
** 説明: `ステータスバーのフィルタ表示のテキスト色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `green`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `green`)
* [[option_weechat.color.status_more]] *weechat.color.status_more*
** 説明: `新しいデータを受け取ったバッファのテキスト色 (ステータスバー)`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `yellow`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `yellow`)
* [[option_weechat.color.status_name]] *weechat.color.status_name*
** 説明: `ステータスバーの現在のバッファ名のテキスト色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `white`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `white`)
* [[option_weechat.color.status_name_ssl]] *weechat.color.status_name_ssl*
** 説明: `SSL などでセキュリティプロトコルを使っている場合のステータスバーの現在のバッファ名のテキスト色、`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `lightgreen`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `lightgreen`)
* [[option_weechat.color.status_number]] *weechat.color.status_number*
** 説明: `ステータスバーの現在のバッファ番号のテキスト色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `yellow`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `yellow`)
* [[option_weechat.color.status_time]] *weechat.color.status_time*
** 説明: `時間のテキスト色 (ステータスバー)`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `default`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `default`)
* [[option_weechat.completion.base_word_until_cursor]] *weechat.completion.base_word_until_cursor*
** 説明: `有効化された場合、補完する元単語はカーソル前の文字で終了; そうでなければ元単語はカーソル後の最初の文字で終了`
@@ -364,17 +364,17 @@
** 値: 0 .. 2147483647 (デフォルト値: `5`)
* [[option_weechat.history.max_buffer_lines_minutes]] *weechat.history.max_buffer_lines_minutes*
-** 説明: `maximum number of minutes in history per buffer (0 = unlimited); examples: 1440 = one day, 10080 = one week, 43200 = one month, 525600 = one year; use 0 ONLY if option weechat.history.max_buffer_lines_number is NOT set to 0`
+** 説明: `バッファ毎の履歴の保存時間 (分) (0 = 制限無し); 例: 1440 = 一日、10080 = 一週間、43200 = 一ヶ月、525600 = 一年間; weechat.history.max_buffer_lines_number オプションが 0 以外の場合には 0 を指定してください`
** タイプ: 整数
** 値: 0 .. 2147483647 (デフォルト値: `0`)
* [[option_weechat.history.max_buffer_lines_number]] *weechat.history.max_buffer_lines_number*
-** 説明: `maximum number of lines in history per buffer (0 = unlimited); use 0 ONLY if option weechat.history.max_buffer_lines_minutes is NOT set to 0`
+** 説明: `バッファ毎の履歴行数 (0 = 制限無し); weechat.history.max_buffer_lines_minutes オプションが 0 以外の場合には 0 を指定してください`
** タイプ: 整数
** 値: 0 .. 2147483647 (デフォルト値: `4096`)
* [[option_weechat.history.max_commands]] *weechat.history.max_commands*
-** 説明: `maximum number of user commands in history (0 = unlimited, NOT RECOMMENDED: no limit in memory usage)`
+** 説明: `履歴に保存するユーザコマンド数 (0 = 制限無し、メモリ使用量の制限が無くなるため非推奨)`
** タイプ: 整数
** 値: 0 .. 2147483647 (デフォルト値: `100`)
@@ -409,7 +409,7 @@
** 値: 未制約文字列 (デフォルト値: `"--"`)
* [[option_weechat.look.buffer_auto_renumber]] *weechat.look.buffer_auto_renumber*
-** 説明: `automatically renumber buffers to have only consecutive numbers and start with number 1; if disabled, gaps between buffer numbers are allowed and the first buffer can have a number greater than 1`
+** 説明: `自動的に番号を割り当てる場合、1 から始まる連番になります; 無効にした場合、バッファ番号に欠番が許され、最初のバッファに1より大きなバッファ番号を割り当てることが可能になります`
** タイプ: ブール
** 値: on, off (デフォルト値: `on`)
@@ -419,27 +419,27 @@
** 値: none, highlight, message, all (デフォルト値: `all`)
* [[option_weechat.look.buffer_position]] *weechat.look.buffer_position*
-** 説明: `position of a new buffer: end = after the end of list (number = last number + 1) (default), first_gap = at first available number in the list (after the end of list if no number is available); this option is used only if the buffer has no layout number`
+** 説明: `新しいバッファの位置: end = リストの最後 (番号 = 最後の番号 + 1) (デフォルト)、first_gap = リスト中に最初に現れる利用可能な番号 (どの番号も使えない場合、リストの最後); このオプションはレイアウト番号を持たないバッファの場合に利用されます`
** タイプ: 整数
** 値: end, first_gap (デフォルト値: `end`)
* [[option_weechat.look.buffer_search_case_sensitive]] *weechat.look.buffer_search_case_sensitive*
-** 説明: `default text search in buffer: case sensitive or not`
+** 説明: `デフォルトのバッファテキスト検索: 大文字小文字を区別するかしないか`
** タイプ: ブール
** 値: on, off (デフォルト値: `off`)
* [[option_weechat.look.buffer_search_force_default]] *weechat.look.buffer_search_force_default*
-** 説明: `force default values for text search in buffer (instead of using values from last search in buffer)`
+** 説明: `バッファテキスト検索のデフォルト値を強制する (バッファで最後に検索した値を使わない)`
** タイプ: ブール
** 値: on, off (デフォルト値: `off`)
* [[option_weechat.look.buffer_search_regex]] *weechat.look.buffer_search_regex*
-** 説明: `default text search in buffer: if enabled, search POSIX extended regular expression, otherwise search simple string`
+** 説明: `デフォルトのバッファテキスト検索: 有効の場合は正規表現で検索、無効の場合は単純な文字列で検索`
** タイプ: ブール
** 値: on, off (デフォルト値: `off`)
* [[option_weechat.look.buffer_search_where]] *weechat.look.buffer_search_where*
-** 説明: `default text search in buffer: in message, prefix, prefix and message`
+** 説明: `デフォルトのバッファテキスト検索: メッセージ中、プレフィックス中、プレフィックスとメッセージ中`
** タイプ: 整数
** 値: prefix, message, prefix_message (デフォルト値: `message`)
@@ -514,12 +514,12 @@
** 値: on, off (デフォルト値: `on`)
* [[option_weechat.look.day_change_message_1date]] *weechat.look.day_change_message_1date*
-** 説明: `message displayed when the day has changed, with one date displayed (for example at beginning of buffer) (see man strftime for date/time specifiers) (note: content is evaluated, so you can use colors with format "${color:xxx}", see /help eval)`
+** 説明: `日付が変わった時に表示される時間のフォーマット、1 つの日付を表示 (例えばバッファの最初に) (日付/時間指定子は strftime の man を参照) (注意: 値は評価されるため "${color:xxx}" フォーマットで色を指定出来ます、/help eval を参照)`
** タイプ: 文字列
** 値: 未制約文字列 (デフォルト値: `"-- %a, %d %b %Y --"`)
* [[option_weechat.look.day_change_message_2dates]] *weechat.look.day_change_message_2dates*
-** 説明: `message displayed when the day has changed, with two dates displayed (between two messages); the second date specifiers must start with two "%" because strftime is called two times on this string (see man strftime for date/time specifiers) (note: content is evaluated, so you can use colors with format "${color:xxx}", see /help eval)`
+** 説明: `日付が変わった時に表示される時間のフォーマット、2 つの日付を表示 (2 つのメッセージの間に); 文字列に対して strftime は 2 回呼び出されるため、2 番目の日付指定子は 2 つの "%" で始めてください (日付/時間指定子は strftime の man を参照) (注意: 値は評価されるため "${color:xxx}" フォーマットで色を指定出来ます、/help eval を参照)`
** タイプ: 文字列
** 値: 未制約文字列 (デフォルト値: `"-- %%a, %%d %%b %%Y (%a, %d %b %Y) --"`)
@@ -529,7 +529,7 @@
** 値: on, off (デフォルト値: `off`)
* [[option_weechat.look.emphasized_attributes]] *weechat.look.emphasized_attributes*
-** 説明: `attributes for emphasized text: one or more attribute chars ("*" for bold, "!" for reverse, "/" for italic, "_" for underline); if the string is empty, the colors weechat.color.emphasized* are used`
+** 説明: `強調テキストの属性: 1 つまたは複数の属性文字 ("*" は太字、"!" は反転、"/" はイタリック、"_" は下線); 文字列が空の場合、weechat.color.emphasized* の色が使われます`
** タイプ: 文字列
** 値: 未制約文字列 (デフォルト値: `""`)
@@ -539,12 +539,12 @@
** 値: 未制約文字列 (デフォルト値: `""`)
* [[option_weechat.look.highlight_regex]] *weechat.look.highlight_regex*
-** 説明: `POSIX extended regular expression used to check if a message has highlight or not, at least one match in string must be surrounded by word chars (alphanumeric, "-", "_" or "|"), regular expression is case insensitive (use "(?-i)" at beginning to make it case sensitive), examples: "flashcode|flashy", "(?-i)FlashCode|flashy"`
+** 説明: `メッセージに含まれるハイライト箇所の有無を判断する POSIX 拡張正規表現、1 回以上マッチすればハイライトされる (英数字、"-"、"_"、"|")、正規表現は大文字小文字を区別しない (最初に "(?-i)" がある場合は区別する)、例: "flashcode|flashy"、"(?-i)FlashCode|flashy"`
** タイプ: 文字列
** 値: 未制約文字列 (デフォルト値: `""`)
* [[option_weechat.look.highlight_tags]] *weechat.look.highlight_tags*
-** 説明: `comma separated list of tags to highlight; case insensitive comparison; each tag can start or end with "*" to match more than one tag; many tags can be separated by "+" to make a logical "and" between tags; examples: "nick_flashcode" for messages from nick "FlashCode", "irc_notice+nick_toto*" for notices from a nick starting with "toto"`
+** 説明: `ハイライトするタグのコンマ区切りリスト; 大文字小文字の区別なし; 1 つ以上のタグにマッチさせるには各タグの最初と最後に "*" をつけてください; 論理積 "and" を取るにはタグ同士を "+" でつなげてください; 例: ニックネーム "FlashCode" からのメッセージは "nick_flashcode"、ニックネームが "toto" で始まるユーザからの notice メッセージは "irc_notice+nick_toto*"`
** タイプ: 文字列
** 値: 未制約文字列 (デフォルト値: `""`)
@@ -639,7 +639,7 @@
** 値: 未制約文字列 (デフォルト値: `"*"`)
* [[option_weechat.look.item_buffer_zoom]] *weechat.look.item_buffer_zoom*
-** 説明: `string used to show zoom on merged buffer (bar item "buffer_zoom")`
+** 説明: `マージされたバッファでズームされたことを示す文字列 (バーアイテム "buffer_zoom")`
** タイプ: 文字列
** 値: 未制約文字列 (デフォルト値: `"!"`)
@@ -829,12 +829,12 @@
** 値: on, off (デフォルト値: `on`)
* [[option_weechat.look.separator_horizontal]] *weechat.look.separator_horizontal*
-** 説明: `char used to draw horizontal separators around bars and windows (empty value will draw a real line with ncurses, but may cause bugs with URL selection under some terminals); width on screen must be exactly one char`
+** 説明: `バーとウィンドウ周囲の水平セパレータ文字 (空の場合は ncurses で線を描画するが、一部のターミナルでは URL 選択の際にバグを生ずる可能性がある); 必ずスクリーン上に描画した時の文字幅が 1 の文字を指定してください`
** タイプ: 文字列
** 値: 未制約文字列 (デフォルト値: `"-"`)
* [[option_weechat.look.separator_vertical]] *weechat.look.separator_vertical*
-** 説明: `char used to draw vertical separators around bars and windows (empty value will draw a real line with ncurses); width on screen must be exactly one char`
+** 説明: `バーとウィンドウ周囲の垂直セパレータ文字 (空の場合は ncurses で線を描画するが、いくつかのターミナルでは URL 選択の際にバグを生ずる可能性がある); 必ずスクリーン上に描画した時の文字幅が 1 の文字を指定してください`
** タイプ: 文字列
** 値: 未制約文字列 (デフォルト値: `""`)
@@ -844,7 +844,7 @@
** 値: 未制約文字列 (デフォルト値: `"%a, %d %b %Y %T"`)
* [[option_weechat.look.window_auto_zoom]] *weechat.look.window_auto_zoom*
-** 説明: `automatically zoom on current window if the terminal becomes too small to display all windows (use alt-z to unzoom windows when the terminal is big enough)`
+** 説明: `ターミナルのサイズがすべてのウィンドウを表示するには小さすぎる場合、自動的に現在のウィンドウにズームする (ターミナルのサイズが十分に大きい場合は、alt-z を使ってウィンドウのズームを戻してください)`
** タイプ: ブール
** 値: on, off (デフォルト値: `off`)
@@ -859,7 +859,7 @@
** 値: on, off (デフォルト値: `on`)
* [[option_weechat.look.window_title]] *weechat.look.window_title*
-** 説明: `title for window (terminal for Curses GUI), set on startup; an empty string will keep title unchanged (note: content is evaluated, see /help eval)`
+** 説明: `起動時に設定するウィンドウタイトル (Curses GUI 端末タイトル); 空文字列の場合、タイトルは変更されません (注意: 値は評価されます、/help eval を参照してください)`
** タイプ: 文字列
** 値: 未制約文字列 (デフォルト値: `"WeeChat ${info:version}"`)
diff --git a/doc/ja/autogen/user/xfer_options.txt b/doc/ja/autogen/user/xfer_options.txt
index 095b35452..3224cb7a6 100644
--- a/doc/ja/autogen/user/xfer_options.txt
+++ b/doc/ja/autogen/user/xfer_options.txt
@@ -1,47 +1,47 @@
* [[option_xfer.color.status_aborted]] *xfer.color.status_aborted*
** 説明: `"中止" 状態のテキスト色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `lightred`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `lightred`)
* [[option_xfer.color.status_active]] *xfer.color.status_active*
** 説明: `"アクティブ" 状態のテキスト色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `lightblue`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `lightblue`)
* [[option_xfer.color.status_connecting]] *xfer.color.status_connecting*
** 説明: `"接続中" 状態のテキスト色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `yellow`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `yellow`)
* [[option_xfer.color.status_done]] *xfer.color.status_done*
** 説明: `"終了" 状態のテキスト色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `lightgreen`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `lightgreen`)
* [[option_xfer.color.status_failed]] *xfer.color.status_failed*
** 説明: `"失敗" 状態のテキスト色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `lightred`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `lightred`)
* [[option_xfer.color.status_waiting]] *xfer.color.status_waiting*
** 説明: `"接続待ち" 状態のテキスト色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `lightcyan`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `lightcyan`)
* [[option_xfer.color.text]] *xfer.color.text*
** 説明: `xfer バッファのテキスト色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `default`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `default`)
* [[option_xfer.color.text_bg]] *xfer.color.text_bg*
** 説明: `xfer バッファの背景色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `default`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `default`)
* [[option_xfer.color.text_selected]] *xfer.color.text_selected*
** 説明: `xfer バッファで選択された行のテキスト色`
** タイプ: 色
-** 値: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline (デフォルト値: `white`)
+** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、イタリックは "/"、下線は "_" (デフォルト値: `white`)
* [[option_xfer.file.auto_accept_chats]] *xfer.file.auto_accept_chats*
** 説明: `チャット要求を自動的に許可 (注意して使用!)`
@@ -59,7 +59,7 @@
** 値: 未制約文字列 (デフォルト値: `""`)
* [[option_xfer.file.auto_check_crc32]] *xfer.file.auto_check_crc32*
-** 説明: `automatically check CRC32 file checksum if it is found in the filename (8 hexadecimal chars)`
+** 説明: `ファイル名に CRC32 ファイルチェックサム (8 桁の 16 進数) が含まれている場合、自動的に CRC32 ファイルチェックサムを確認`
** タイプ: ブール
** 値: on, off (デフォルト値: `off`)
diff --git a/doc/ja/weechat_faq.ja.txt b/doc/ja/weechat_faq.ja.txt
index 427ff3d7f..ed8422a54 100644
--- a/doc/ja/weechat_faq.ja.txt
+++ b/doc/ja/weechat_faq.ja.txt
@@ -397,11 +397,9 @@ $ printf '\033[?1002h'
$ printf '\033[?1002l'
----
-// TRANSLATION MISSING
[[mouse_coords]]
=== マウスの位置座標 X 又は Y が 94 (or 222) よりも大きい場合にマウス機能が正しく動きません。
-// TRANSLATION MISSING
一部のターミナルではマウスの位置座標を指定するために ISO 文字だけを使います、
このため X/Y が 94 (or 222) よりも大きい場合は正しく動きません。
diff --git a/doc/ja/weechat_plugin_api.ja.txt b/doc/ja/weechat_plugin_api.ja.txt
new file mode 100644
index 000000000..5e875717b
--- /dev/null
+++ b/doc/ja/weechat_plugin_api.ja.txt
@@ -0,0 +1,14513 @@
+= WeeChat プラグイン API リファレンス
+Sébastien Helleu <flashcode@flashtux.org>
+
+
+このマニュアルは WeeChat チャットクライアントについての文書で、WeeChat の一部です。
+
+この文書の最新版を見るには以下のページを確認して下さい:
+http://weechat.org/doc
+
+
+[[introduction]]
+== はじめに
+
+WeeChat (Wee Enhanced Environment for Chat)
+は無料のチャットクライアントで、高速、軽量、多くのオペレーティングシステムで動くように設計されています。
+
+このマニュアルは WeeChat プラグイン API についての文書で、C
+言語プラグインはこの API を使って WeeChat の中核部と通信しています。
+
+[[plugins_in_weechat]]
+== WeeChat プラグイン
+
+プラグインは C 言語のプログラムであり、インターフェイスが定義する
+WeeChat 関数を呼び出すことができます。
+
+この C 言語プログラムはコンパイルの際に WeeChat のソースを必要としません、WeeChat
+は `/plugin` コマンドでこのプログラムを動的に読み込むことができます。
+
+プラグインを動的にオペレーティングシステムに読み込ませるために、プラグインは必ずダイナミックライブラリにしてください。ファイルの拡張子は
+GNU/Linux では ".so"、Windows
+では ".dll" です。
+
+プラグインでは必ず "weechat-plugin.h" ファイルをインクルードしてください
+(WeeChat ソースコードに含まれています)。このファイルでは WeeChat
+と通信する際に使う構造体や型が定義されています。
+
+[[macros]]
+=== マクロ
+
+プラグインでは必ず以下のマクロを使ってください (いくつかの変数を定義するために必要です):
+
+WEECHAT_PLUGIN_NAME("name")::
+ プラグイン名
+
+WEECHAT_PLUGIN_DESCRIPTION("description")::
+ プラグインの短い説明
+
+WEECHAT_PLUGIN_VERSION("1.0")::
+ プラグインのバージョン番号
+
+WEECHAT_PLUGIN_LICENSE("GPL3")::
+ プラグインのライセンス
+
+[[main_functions]]
+=== 重要な関数
+
+プラグインでは必ず以下の 2 つの関数を使ってください:
+
+* 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 プラグイン構造体へのポインタ
+* 'argc': プラグインに対する引数の数 (ユーザがコマンドラインで指定)
+* 'argv': プラグインに対する引数
+
+戻り値:
+
+* 'WEECHAT_RC_OK' 成功した場合 (プラグインを読み込みます)
+* 'WEECHAT_RC_ERROR' エラーが起きた場合 (プラグインを読み込みません)
+
+==== 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'
+ファイルだけが必要です。
+
+1 つのファイル "toto.c" からなるプラグインは以下のようにコンパイルします (GNU/Linux の場合):
+
+----
+$ gcc -fPIC -Wall -c toto.c
+$ gcc -shared -fPIC -o libtoto.so toto.o
+----
+
+[[load_plugin]]
+=== プラグインを読み込む
+
+'libtoto.so' ファイルをシステムのプラグインディレクトリ (例えば
+'/usr/local/lib/weechat/plugins') またはユーザのプラグインディレクトリ (例えば
+'/home/xxx/.weechat/plugins') にコピーしてください。
+
+WeeChat の中で:
+
+----
+/plugin load toto
+----
+
+[[plugin_example]]
+=== プラグインの例
+
+コマンド '/double' を追加するプラグインの例: 引数を 2
+倍して現在のバッファに表示するか、コマンドを 2 回実行する
+(これは実用的なコマンドというよりも、ただの例です!):
+
+[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 (void *data, struct t_gui_buffer *buffer, int argc,
+ char **argv, char **argv_eol)
+{
+ /* C 言語コンパイラ向けに必要 */
+ (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);
+
+ 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 スクリプトでの使用例 (他のスクリプト言語を使う場合も文法は似ています)。
+
+[[plugins]]
+=== プラグイン
+
+プラグインに関する情報を取得する関数。
+
+==== weechat_plugin_get_name
+
+プラグインの名前を取得。
+
+プロトタイプ:
+
+[source,C]
+----
+const char *weechat_plugin_get_name (struct t_weechat_plugin *plugin);
+----
+
+引数:
+
+* 'plugin': WeeChat プラグイン構造体へのポインタ (NULL でも可)
+
+戻り値:
+
+* プラグインの名前、WeeChat コアの場合は "core" (プラグインへのポインタが NULL の場合)
+
+C 言語での使用例:
+
+[source,C]
+----
+const char *name = weechat_plugin_get_name (plugin);
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# プロトタイプ
+name = weechat.plugin_get_name(plugin)
+
+# 例
+plugin = weechat.buffer_get_pointer(weechat.current_buffer(), "plugin")
+name = weechat.plugin_get_name(plugin)
+----
+
+[[strings]]
+=== 文字列
+
+以下の多くの文字列関数は標準的な C 言語の関数でも定義されていますが、この
+API 関数を使うことを推奨します。なぜなら、これらの関数は文字列を
+UTF-8 とロケールに準じて取り扱うようになっているからです。
+
+==== weechat_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]
+----
+# prototype
+weechat.charset_set(charset)
+
+# example
+weechat.charset_set("iso-8859-1")
+----
+
+==== weechat_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]
+----
+# prototype
+str = weechat.iconv_to_internal(charset, string)
+
+# example
+str = weechat.iconv_to_internal("iso-8859-1", "iso string: é à")
+----
+
+==== weechat_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]
+----
+# prototype
+str = weechat.iconv_from_internal(charset, string)
+
+# example
+str = weechat.iconv_from_internal("iso-8859-1", "utf-8 string: é à")
+----
+
+==== weechat_gettext
+
+翻訳済み文字列を返す (設定言語に依存)。
+
+プロトタイプ:
+
+[source,C]
+----
+const char *weechat_gettext (const char *string);
+----
+
+引数:
+
+* 'string': 翻訳元の文字列
+
+戻り値:
+
+* 翻訳済み文字列
+
+C 言語での使用例:
+
+[source,C]
+----
+char *str = weechat_gettext ("hello");
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+str = weechat.gettext(string)
+
+# example
+str = weechat.gettext("hello")
+----
+
+==== weechat_ngettext
+
+'count'
+引数を元に単数形または複数形で、翻訳済み文字列を返す。
+
+プロトタイプ:
+
+[source,C]
+----
+const char *weechat_ngettext (const char *string, const char *plural,
+ int count);
+----
+
+引数:
+
+* 'string': 翻訳元の文字列、単数形
+* 'plural': 翻訳元の文字列、複数形
+* 'count': 単数形と複数形のどちらを返すかの判断に使います
+ (選択は設定言語に依存)
+
+戻り値:
+
+* 翻訳済みの文字列
+
+C 言語での使用例:
+
+[source,C]
+----
+char *str = weechat_ngettext ("file", "files", num_files);
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+str = weechat.ngettext(string, plural, count)
+
+# example
+num_files = 2
+str = weechat.ngettext("file", "files", num_files)
+----
+
+==== weechat_strndup
+
+複製した文字列を最大で 'length' 文字分返す。
+
+プロトタイプ:
+
+[source,C]
+----
+char *weechat_strndup (const char *string, int length);
+----
+
+引数:
+
+* 'string': 複製元の文字列
+* 'length': 複製する文字列の最大文字数
+
+戻り値:
+
+* 複製した文字列 (使用後には必ず "free" を呼び出して領域を開放してください)
+
+C 言語での使用例:
+
+[source,C]
+----
+char *str = weechat_strndup ("abcdef", 3); /* result: "abc" */
+/* ... */
+free (str);
+----
+
+[NOTE]
+スクリプト API ではこの関数を利用できません。
+
+==== weechat_string_tolower
+
+UTF-8 文字列を小文字に変換。
+
+プロトタイプ:
+
+[source,C]
+----
+void weechat_string_tolower (const char *string);
+----
+
+引数:
+
+* 'string': 変換元の文字列
+
+C 言語での使用例:
+
+[source,C]
+----
+char *str = "AbCdé";
+weechat_string_tolower (str); /* str is now: "abcdé" */
+----
+
+[NOTE]
+スクリプト API ではこの関数を利用できません。
+
+==== weechat_string_toupper
+
+UTF-8 文字列を大文字に変換。
+
+プロトタイプ:
+
+[source,C]
+----
+void weechat_string_toupper (const char *string);
+----
+
+引数:
+
+* 'string': 変換元の文字列
+
+C 言語での使用例:
+
+[source,C]
+----
+char *str = "AbCdé";
+weechat_string_toupper (str); /* str is now: "ABCDé" */
+----
+
+[NOTE]
+スクリプト API ではこの関数を利用できません。
+
+==== weechat_strcasecmp
+
+ロケールと大文字小文字を無視して文字列を比較。
+
+プロトタイプ:
+
+[source,C]
+----
+int weechat_strcasecmp (const char *string1, const char *string2);
+----
+
+引数:
+
+* 'string1': 1 番目の比較対象の文字列
+* 'string2': 2 番目の比較対象の文字列
+
+戻り値:
+
+* 2 つの文字列の差:
+** string1 < string2 の場合は負
+** string1 == string2 の場合はゼロ
+** string1 > string2 の場合は正
+
+C 言語での使用例:
+
+[source,C]
+----
+int diff = weechat_strcasecmp ("aaa", "CCC"); /* == -2 */
+----
+
+[NOTE]
+スクリプト API ではこの関数を利用できません。
+
+==== weechat_strcasecmp_range
+
+_WeeChat バージョン 0.3.7 以上で利用可。_
+
+大文字小文字を無視する文字範囲の幅を使い、ロケールと大文字小文字を無視して文字列を比較。
+
+プロトタイプ:
+
+[source,C]
+----
+int weechat_strcasecmp_range (const char *string1, const char *string2, int range);
+----
+
+引数:
+
+* 'string1': 1 番目の比較対象の文字列
+* 'string2': 2 番目の比較対象の文字列
+* 'range': 大文字小文字を無視する文字範囲の幅、例:
+** 26: "A-Z" を "a-z" のように変換して比較
+** 29: "A-Z [ \ ]" を "a-z { | }" のように変換して比較
+** 30: "A-Z [ \ ] ^" を "a-z { | } ~" のように変換して比較
+
+[NOTE]
+29 と 30 は IRC など一部のプロトコルで使います。
+
+戻り値:
+
+* 2 つの文字列の差:
+** string1 < string2 の場合は負
+** string1 == string2 の場合はゼロ
+** string1 > string2 の場合は正
+
+C 言語での使用例:
+
+[source,C]
+----
+int diff = weechat_strcasecmp_range ("nick{away}", "NICK[away]", 29); /* == 0 */
+----
+
+[NOTE]
+スクリプト API ではこの関数を利用できません。
+
+==== weechat_strncasecmp
+
+ロケールと大文字小文字を無視して 'max' 文字だけ文字列を比較。
+
+プロトタイプ:
+
+[source,C]
+----
+int weechat_strncasecmp (const char *string1, const char *string2, int max);
+----
+
+引数:
+
+* 'string1': 1 番目の比較対象の文字列
+* 'string2': 2 番目の比較対象の文字列
+* 'max': 比較する文字数の最大値
+
+戻り値:
+
+* 2 つの文字列の差:
+** string1 < string2 の場合は負
+** string1 == string2 の場合はゼロ
+** string1 > string2 の場合は正
+
+C 言語での使用例:
+
+[source,C]
+----
+int diff = weechat_strncasecmp ("aabb", "aacc", 2); /* == 0 */
+----
+
+[NOTE]
+スクリプト API ではこの関数を利用できません。
+
+==== weechat_strncasecmp_range
+
+_WeeChat バージョン 0.3.7 以上で利用可。_
+
+大文字小文字を無視する文字範囲の幅を使い、ロケールと大文字小文字を無視して
+'max' 文字だけ文字列を比較。
+
+プロトタイプ:
+
+[source,C]
+----
+int weechat_strncasecmp_range (const char *string1, const char *string2, int max, int range);
+----
+
+引数:
+
+* 'string1': 1 番目の比較対象の文字列
+* 'string2': 2 番目の比較対象の文字列
+* 'max': 比較する文字数の最大値
+* 'range': 大文字小文字を無視する文字範囲の幅、例:
+** 26: "A-Z" を "a-z" のように変換して比較
+** 29: "A-Z [ \ ]" を "a-z { | }" のように変換して比較
+** 30: "A-Z [ \ ] ^" を "a-z { | } ~" のように変換して比較
+
+[NOTE]
+29 と 30 は IRC など一部のプロトコルで使います。
+
+戻り値:
+
+* 2 つの文字列の差:
+** string1 < string2 の場合は負
+** string1 == string2 の場合はゼロ
+** string1 > string2 の場合は正
+
+C 言語での使用例:
+
+[source,C]
+----
+int diff = weechat_strncasecmp_range ("nick{away}", "NICK[away]", 6, 29); /* == 0 */
+----
+
+[NOTE]
+スクリプト API ではこの関数を利用できません。
+
+==== weechat_strcmp_ignore_chars
+
+一部の文字列を無視して、ロケールに依存して
+(オプションで大文字小文字の区別をしない) 文字列を比較。
+
+プロトタイプ:
+
+[source,C]
+----
+int weechat_strcmp_ignore_chars (const char *string1, const char *string2,
+ const char *chars_ignored,
+ int case_sensitive);
+----
+
+引数:
+
+* 'string1': 1 番目の比較対象の文字列
+* 'string2': 2 番目の比較対象の文字列
+* 'chars_ignored': 無視する文字
+* 'case_sensitive': 大文字小文字を区別して比較する場合は 1、区別しない場合は 0
+
+戻り値:
+
+* 2 つの文字列の差:
+** string1 < string2 の場合は負
+** string1 == string2 の場合はゼロ
+** string1 > string2 の場合は正
+
+C 言語での使用例:
+
+[source,C]
+----
+int diff = weechat_strcmp_ignore_chars ("a-b", "--a-e", "-", 1); /* == -3 */
+----
+
+[NOTE]
+スクリプト API ではこの関数を利用できません。
+
+==== weechat_strcasestr
+
+ロケールと大文字小文字を区別して文字列を検索。
+
+プロトタイプ:
+
+[source,C]
+----
+char *weechat_strcasestr (const char *string, const char *search);
+----
+
+引数:
+
+* 'string': 文字列
+* 'search': 'string' 内を検索する文字
+
+戻り値:
+
+* 見つかった文字列へのポインタ、見つからない場合は NULL
+
+C 言語での使用例:
+
+[source,C]
+----
+char *pos = weechat_strcasestr ("aBcDeF", "de"); /* result: pointer to "DeF" */
+----
+
+[NOTE]
+スクリプト API ではこの関数を利用できません。
+
+==== weechat_strlen_screen
+
+_WeeChat バージョン 0.4.2 以上で利用可。_
+
+UTF-8 文字列をスクリーン上に表示するために必要なスクリーン幅を返す。非表示文字を
+1 文字として数えます (これが
+<<_weechat_utf8_strlen_screen,weechat_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]
+----
+# prototype
+length = weechat.strlen_screen(string)
+
+# example
+length = weechat.strlen_screen("é") # 1
+----
+
+==== weechat_string_match
+
+文字列がマスクにマッチするか確認。
+
+プロトタイプ:
+
+[source,C]
+----
+int weechat_string_match (const char *string, const char *mask,
+ int case_sensitive);
+----
+
+引数:
+
+* 'string': 文字列
+* 'mask': マスク、最初と最後に "`*`" をつけることができます
+ ("`*`" をマスクの内側につけることはできません)
+* 'case_sensitive': 大文字小文字を区別する場合は 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 */
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+match = weechat.string_match(string, mask, case_sensitive)
+
+# examples
+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
+----
+
+==== weechat_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"); /* result: "text" */
+/* ... */
+free (str);
+----
+
+[NOTE]
+スクリプト API ではこの関数を利用できません。
+
+==== weechat_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");
+/* result: "/home/xxx/file.txt" */
+/* ... */
+free (str);
+----
+
+[NOTE]
+スクリプト API ではこの関数を利用できません。
+
+==== weechat_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 ではこの関数を利用できません。
+
+==== weechat_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 ではこの関数を利用できません。
+
+==== weechat_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");
+/* result: "test.*mask" */
+/* ... */
+free (str_regex);
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+regex = weechat.string_mask_to_regex(mask)
+
+# example
+regex = weechat.string_mask_to_regex("test*mask") # "test.*mask"
+----
+
+==== weechat_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)string"。
+
+利用可能なフラグ:
+
+* '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 ではこの関数を利用できません。
+
+==== weechat_string_regcomp
+
+_WeeChat バージョン 0.3.7 以上で利用可。_
+
+文字列の最初に含まれるオプションフラグを使って POSIX
+拡張正規表現をコンパイル (フラグのフォーマットについては
+<<_weechat_string_regex_flags,weechat_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、エラーが起きた場合は 0 以外、`man regcomp` を参照)
+
+C 言語での使用例:
+
+[source,C]
+----
+regex_t my_regex;
+if (weechat_string_regcomp (&my_regex, "(?i)test", REG_EXTENDED) != 0)
+{
+ /* error */
+}
+----
+
+[NOTE]
+スクリプト API ではこの関数を利用できません。
+
+==== weechat_string_has_highlight
+
+ハイライトしたい単語のリストを元に、1 箇所以上マッチする部分があるか調べる。
+
+プロトタイプ:
+
+[source,C]
+----
+int weechat_string_has_highlight (const char *string,
+ const char highlight_words);
+----
+
+引数:
+
+* 'string': 文字列、
+* 'highlight_words': ハイライトしたい単語のリスト、コンマ区切り
+
+戻り値:
+
+* ハイライトしたい単語にマッチする部分が 1 箇所以上ある場合は 1、それ以外は 0
+
+C 言語での使用例:
+
+[source,C]
+----
+int hl = weechat_string_has_highlight ("my test string", "test,word2"); /* == 1 */
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+highlight = weechat.string_has_highlight(string, highlight_words)
+
+# example
+highlight = weechat.string_has_highlight("my test string", "test,word2") # 1
+----
+
+==== weechat_string_has_highlight_regex
+
+_WeeChat バージョン 0.3.4 以上で利用可。_
+
+POSIX 拡張正規表現を使って、文字列中から正規表現にマッチする部分が 1
+つ以上あるか確認。 +
+文字列中から正規表現にマッチする部分が少なくとも 1 つ以上あるためには、マッチ部分は単語文字
+(アルファベット、"-"、"_"、"|") で囲まれていなければなりません。
+
+プロトタイプ:
+
+[source,C]
+----
+int weechat_string_has_highlight_regex (const char *string, const char *regex);
+----
+
+引数:
+
+* 'string': 文字列
+* 'regex': POSIX 拡張正規表現
+
+戻り値:
+
+* ハイライトしたい正規表現にマッチする部分が 1 箇所以上ある場合は 1、それ以外は 0
+
+C 言語での使用例:
+
+[source,C]
+----
+int hl = weechat_string_has_highlight_regex ("my test string", "test|word2"); /* == 1 */
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+highlight = weechat.string_has_highlight_regex(string, regex)
+
+# example
+highlight = weechat.string_has_highlight_regex("my test string", "test|word2") # 1
+----
+
+==== weechat_string_split
+
+1 つ以上の区切り文字に従って文字列を分割。
+
+プロトタイプ:
+
+[source,C]
+----
+char **weechat_string_split (const char *string, const char *separators,
+ int keep_eol, int num_items_max,
+ int *num_items);
+----
+
+引数:
+
+* 'string': 分割する文字列
+* 'separators': 分割に使う区切り文字
+* 'keep_eol':
+** 0: 区切り文字ごとの文字列に分割
+** 1: 文字列の最初から区切り文字までの文字列に分割 (下の例を参照)
+** 2: 1 と同じだが、文字列の最後から区切り文字を削除しない
+ _(WeeChat バージョン 0.3.6 以上で利用可)_
+* 'num_items_max': 分割回数の上限 (0 = 制限なし)
+* 'num_items': 分割回数を返す整数型変数へのポインタ
+
+戻り値:
+
+* 文字列の配列、分割に失敗した場合は NULL (使用後には必ず
+ <<_weechat_string_free_split,weechat_string_free_split>> を呼び出して領域を開放してください)
+
+C 言語での使用例:
+
+[source,C]
+----
+char **argv;
+int argc;
+argv = weechat_string_split ("abc de fghi", " ", 0, 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", " ", 1, 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);
+----
+
+[NOTE]
+スクリプト API ではこの関数を利用できません。
+
+==== weechat_string_free_split
+
+文字列分割に使用したメモリを開放。
+
+プロトタイプ:
+
+[source,C]
+----
+void weechat_string_free_split (char **split_string);
+----
+
+引数:
+
+* 'split_string': 関数 <<_weechat_string_split,weechat_string_split>>
+ が返した分割文字列の配列
+
+C 言語での使用例:
+
+[source,C]
+----
+char *argv;
+int argc;
+argv = weechat_string_split (string, " ", 0, 0, &argc);
+/* ... */
+weechat_string_free_split (argv);
+----
+
+[NOTE]
+スクリプト API ではこの関数を利用できません。
+
+==== weechat_string_build_with_split_string
+
+分割文字列から文字列を作る。
+
+プロトタイプ:
+
+[source,C]
+----
+char *weechat_string_build_with_split_string (char **split_string,
+ const char *separator);
+----
+
+引数:
+
+* 'split_string': 関数 <<_weechat_string_split,weechat_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 ではこの関数を利用できません。
+
+==== weechat_string_split_command
+
+'separator' でコマンドのリストを分割
+(コマンドに区切り文字を使う場合は "\" でエスケープ)。
+
+プロトタイプ:
+
+[source,C]
+----
+char **weechat_string_split_command (const char *command, char separator);
+----
+
+引数:
+
+* 'command': 分割するコマンド
+* 'separator': 区切り文字
+
+戻り値:
+
+* 文字列の配列、分割に失敗した場合は NULL (使用後には必ず
+ <<_weechat_free_split_command,weechat_free_split_command>> を呼び出して領域を開放してください)
+
+C 言語での使用例:
+
+[source,C]
+----
+char **argv = weechat_string_split_command ("/command1 arg;/command2", ';');
+/* result: argv[0] == "/command1 arg"
+ argv[1] == "/command2"
+*/
+weechat_free_split_command (argv);
+----
+
+[NOTE]
+スクリプト API ではこの関数を利用できません。
+
+==== weechat_string_free_split_command
+
+コマンド分割で使用したメモリを開放。
+
+プロトタイプ:
+
+[source,C]
+----
+void weechat_string_free_split_command (char **split_command);
+----
+
+引数:
+
+* 'split_command': 関数 <<_weechat_string_split_command,weechat_string_split_command>>
+ が返す分割コマンドの配列
+
+C 言語での使用例:
+
+[source,C]
+----
+char **argv = weechat_string_split_command ("/command1 arg;/command2", ';');
+/* ... */
+weechat_free_split_command (argv);
+----
+
+[NOTE]
+スクリプト API ではこの関数を利用できません。
+
+==== weechat_string_format_size
+
+ファイルサイズと設定言語に翻訳された単位を書式に当てはめて文字列を作る
+
+プロトタイプ:
+
+[source,C]
+----
+char *weechat_string_format_size (unsigned long long size);
+----
+
+引数:
+
+* 'size': サイズ (バイト単位)
+
+戻り値:
+
+* 書式に従う文字列 (使用後には必ず "free" を呼び出して領域を開放してください)
+
+C 言語での使用例:
+
+[source,C]
+----
+/* examples with english locale */
+
+char *str = weechat_string_format_size (0); /* str == "0 byte" */
+/* ... */
+free (str);
+
+char *str = weechat_string_format_size (200); /* str == "200 bytes" */
+/* ... */
+free (str);
+
+char *str = weechat_string_format_size (1536); /* str == "1.5 KB" */
+/* ... */
+free (str);
+
+char *str = weechat_string_format_size (2097152); /* str == "2 MB" */
+/* ... */
+free (str);
+----
+
+[NOTE]
+スクリプト API ではこの関数を利用できません。
+
+==== weechat_string_remove_color
+
+文字列から WeeChat 色コードを削除。
+
+プロトタイプ:
+
+[source,C]
+----
+char *weechat_string_remove_color (const char *string,
+ const char *replacement);
+----
+
+引数:
+
+* 'string': 文字列
+* 'replacement': NULL または空文字列でなければ、WeeChat
+ 色コードを指定した文字列の 1 文字目で置換、そうでなければ 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]
+----
+# prototype
+str = weechat.string_remove_color(string, replacement)
+
+# example
+str = weechat.string_remove_color(my_string, "?")
+----
+
+==== weechat_string_encode_base64
+
+_WeeChat バージョン 0.3.2 以上で利用可。_
+
+文字列を base64 でエンコード。
+
+プロトタイプ:
+
+[source,C]
+----
+void weechat_string_encode_base64 (const char *from, int length, char *to);
+----
+
+引数:
+
+* 'from': エンコード元文字列
+* 'length': エンコードする文字列の長さ (例えば `strlen(from)`)
+* 'to': エンコード結果を保存する文字列へのポインタ
+ (十分な領域を確保してください、結果はエンコード元文字列よりも長くなります)
+
+C 言語での使用例:
+
+[source,C]
+----
+char *string = "abcdefgh", result[128];
+weechat_string_encode_base64 (string, strlen (string), result);
+/* result == "YWJjZGVmZ2g=" */
+----
+
+[NOTE]
+スクリプト API ではこの関数を利用できません。
+
+==== weechat_string_decode_base64
+
+_WeeChat バージョン 0.3.2 以上で利用可。_
+
+base64 文字列をデコード。
+
+プロトタイプ:
+
+[source,C]
+----
+int weechat_string_decode_base64 (const char *from, char *to);
+----
+
+引数:
+
+* 'from': デコード元文字列
+* 'to': デコード結果を保存する文字列へのポインタ
+ (十分な領域を確保してください、結果はデコード元文字列よりも短くなります)
+
+戻り値:
+
+* *to に保存された文字列の長さ (最後の '\0' は数えません)
+
+C 言語での使用例:
+
+[source,C]
+----
+char *string = "YWJjZGVmZ2g=", result[128];
+int length;
+length = weechat_string_decode_base64 (string, result);
+/* length == 8, result == "abcdefgh" */
+----
+
+[NOTE]
+スクリプト API ではこの関数を利用できません。
+
+==== weechat_string_is_command_char
+
+_WeeChat バージョン 0.3.2 以上で利用可。_
+
+文字列の 1 文字目がコマンド文字か確認 (デフォルトのコマンド文字は '/')。
+
+プロトタイプ:
+
+[source,C]
+----
+int weechat_string_is_command_char (const char *string);
+----
+
+引数:
+
+* 'string': 文字列
+
+戻り値:
+
+* 文字列の 1 文字目がコマンド文字の場合は 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]
+----
+# prototype
+is_cmdchar = weechat.string_is_command_char(string)
+
+# examples
+command_char1 = weechat.string_is_command_char("/test") # == 1
+command_char2 = weechat.string_is_command_char("test") # == 0
+----
+
+==== weechat_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]
+----
+# prototype
+str = weechat.string_input_for_buffer(string)
+
+# examples
+str1 = weechat.string_input_for_buffer("test") # "test"
+str2 = weechat.string_input_for_buffer("/test") # ""
+str3 = weechat.string_input_for_buffer("//test") # "/test"
+----
+
+==== weechat_string_eval_expression
+
+_WeeChat バージョン 0.4.0 以上で利用可、バージョン 0.4.2 で更新。_
+
+式を評価して文字列として返す。`${variable}`
+という書式で書かれた特殊変数は展開される
+('WeeChat ユーザガイド' のコマンド `/eval` を参照)。
+
+プロトタイプ:
+
+[source,C]
+----
+char *weechat_string_eval_expression (const char *expr,
+ struct t_hashtable *pointers,
+ struct t_hashtable *extra_vars,
+ struct t_hashtable *options);
+----
+
+引数:
+
+* 'expr': 評価する式
+* 'pointers': ポインタを含むハッシュテーブル (キーは文字列、値はポインタ);
+ (現在のウィンドウやバッファへのポインタを持つ) ハッシュテーブルが "window" と
+ "buffer" ポインタを持たない場合はこれらは自動的に追加される (NULL でも可)
+* 'extra_vars': 展開される追加変数 (NULL でも可)
+* 'options': いくつかのオプションを含むハッシュテーブル (キーと値は必ず文字列)
+ (NULL でも可):
+** 'type':
+ デフォルトの挙動では式中の変数をその値で置換するだけです、その他に以下のタイプを使うことができます:
+*** 'condition': 条件式として式を評価します:
+ 演算子と括弧が使われます、結果はブール値 ("0" または "1") です
+** 'prefix': 置換する変数のプレフィックス (デフォルト: "${")
+** 'suffix': 置換する変数のサフィックス (デフォルト: "}")
+
+戻り値:
+
+* 評価された式 (使用後には必ず "free" を呼び出して領域を開放してください)、失敗した場合は
+ NULL (式が不正な場合やメモリが不足している場合)
+
+C 言語での使用例:
+
+[source,C]
+----
+struct t_hashtable *options = weechat_hashtable_new (8,
+ WEECHAT_HASHTABLE_STRING,
+ WEECHAT_HASHTABLE_STRING,
+ NULL,
+ NULL);
+if (options)
+ weechat_hashtable_set (options, "type", "condition");
+char *str1 = weechat_string_eval_expression ("${buffer.full_name}", NULL, NULL, NULL); /* "core.weechat" */
+char *str2 = weechat_string_eval_expression ("${window.win_width} > 100", NULL, NULL, options); /* "1" */
+char *str3 = weechat_string_eval_expression ("abc =~ def", NULL, NULL, options); /* "0" */
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+str = weechat.string_eval_expression(expr, pointers, extra_vars, options)
+
+# examples
+str1 = weechat.string_eval_expression("${buffer.full_name}", {}, {}, {}) # "core.weechat"
+str2 = weechat.string_eval_expression("${window.win_width} > 100", {}, {}, {"type": "condition"}) # "1"
+str3 = weechat.string_eval_expression("abc =~ def", {}, {}, {"type": "condition"}) # "0"
+----
+
+[[utf-8]]
+=== UTF-8
+
+UTF-8 文字列関数。
+
+==== weechat_utf8_has_8bits
+
+文字列に 8 ビット文字が含まれているか確認。
+
+プロトタイプ:
+
+[source,C]
+----
+int weechat_utf8_has_8bits (const char *string);
+----
+
+引数:
+
+* 'string': 文字列
+
+戻り値:
+
+* 文字列に 8 ビット文字が含まれる場合は 1、7 ビット文字だけの場合は 0
+
+C 言語での使用例:
+
+[source,C]
+----
+if (weechat_utf8_has_8bits (string))
+{
+ /* ... */
+}
+----
+
+[NOTE]
+スクリプト API ではこの関数を利用できません。
+
+==== weechat_utf8_is_valid
+
+文字列が妥当な UTF-8 表現か確認。
+
+プロトタイプ:
+
+[source,C]
+----
+int weechat_utf8_is_valid (const char *string, char **error);
+----
+
+引数:
+
+* 'string': 文字列
+* 'error': NULL でない場合は '*error*'
+ は文字列に含まれる最初の妥当でない UTF-8 文字へのポインタ
+
+戻り値:
+
+* 妥当な UTF-8 文字列の場合は 1、妥当でない場合は 0
+
+C 言語での使用例:
+
+[source,C]
+----
+char *error;
+if (weechat_utf8_is_valid (string, &error))
+{
+ /* ... */
+}
+else
+{
+ /* "error" points to first invalid char */
+}
+----
+
+[NOTE]
+スクリプト API ではこの関数を利用できません。
+
+==== weechat_utf8_normalize
+
+UTF-8 文字列を正規化: 非 UTF-8 文字を削除し、これらを文字で置換。
+
+プロトタイプ:
+
+[source,C]
+----
+void weechat_utf8_normalize (char *string, char replacement);
+----
+
+引数:
+
+* 'string': 文字列
+* 'replacement': 非 UTF-8 文字を置き換える文字
+
+C 言語での使用例:
+
+[source,C]
+----
+weechat_utf8_normalize (string, '?');
+----
+
+[NOTE]
+スクリプト API ではこの関数を利用できません。
+
+==== weechat_utf8_prev_char
+
+文字列中の 1 つ前の UTF-8 文字へのポインタを返す。
+
+プロトタイプ:
+
+[source,C]
+----
+char *weechat_utf8_prev_char (const char *string_start, const char *string);
+----
+
+引数:
+
+* 'string_start': 文字列の開始位置へのポインタ
+ (関数はこのポインタよりも前の文字を返しません)
+* 'string': 文字列へのポインタ (必ず 'string_start' 以上の値)
+
+戻り値:
+
+* 1 つ前の UTF-8 文字へのポインタ、見つからなければ (文字列の開始位置に到達した場合は) NULL
+
+C 言語での使用例:
+
+[source,C]
+----
+char *prev_char = weechat_utf8_prev_char (string, ptr_in_string);
+----
+
+[NOTE]
+スクリプト API ではこの関数を利用できません。
+
+==== weechat_utf8_next_char
+
+文字列中の 1 つ後の UTF-8 文字へのポインタを返す。
+
+プロトタイプ:
+
+[source,C]
+----
+char *weechat_utf8_next_char (const char *string);
+----
+
+引数:
+
+* 'string': 文字列
+
+戻り値:
+
+* 1 つ後の UTF-8 文字へのポインタ、見つからなければ (文字列の最後に到達した場合は) NULL
+
+C 言語での使用例:
+
+[source,C]
+----
+char *next_char = weechat_utf8_next_char (string);
+----
+
+[NOTE]
+スクリプト API ではこの関数を利用できません。
+
+==== weechat_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"); /* "ê" as integer */
+----
+
+[NOTE]
+スクリプト API ではこの関数を利用できません。
+
+==== weechat_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 ではこの関数を利用できません。
+
+==== weechat_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 ではこの関数を利用できません。
+
+==== weechat_utf8_strnlen
+
+文字列の 'bytes' バイト目までに含まれる UTF-8 文字列の長さを返す (UTF-8 文字の個数)。
+
+プロトタイプ:
+
+[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 ではこの関数を利用できません。
+
+==== weechat_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 ではこの関数を利用できません。
+
+==== weechat_utf8_charcmp
+
+2 つの UTF-8 文字を比較。
+
+プロトタイプ:
+
+[source,C]
+----
+int weechat_utf8_charcmp (const char *string1, const char *string2);
+----
+
+引数:
+
+* 'string1': 1 番目の比較文字列
+* 'string2': 2 番目の比較文字列
+
+戻り値:
+
+* 各文字列の 1 文字目同士の差:
+** char1 < char2 の場合は負
+** char1 == char2 の場合はゼロ
+** char1 > char2 の場合は正
+
+C 言語での使用例:
+
+[source,C]
+----
+int diff = weechat_utf8_charcmp ("aaa", "ccc"); /* == -2 */
+----
+
+[NOTE]
+スクリプト API ではこの関数を利用できません。
+
+==== weechat_utf8_charcasecmp
+
+大文字小文字の違いを無視して、2 つの UTF-8 文字を比較。
+
+プロトタイプ:
+
+[source,C]
+----
+int weechat_utf8_charcasecmp (const char *string1, const char *string2);
+----
+
+引数:
+
+* 'string1': 1 番目の比較文字列
+* 'string2': 2 番目の比較文字列
+
+戻り値:
+
+* 各文字列の 1 文字目同士の差:
+** char1 < char2 の場合は負
+** char1 == char2 の場合はゼロ
+** char1 > char2 の場合は正
+
+C 言語での使用例:
+
+[source,C]
+----
+int diff = weechat_utf8_charcasecmp ("aaa", "CCC"); /* == -2 */
+----
+
+[NOTE]
+スクリプト API ではこの関数を利用できません。
+
+==== weechat_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 ではこの関数を利用できません。
+
+==== weechat_utf8_add_offset
+
+UTF-8 文字列で N 文字前に進む。
+
+プロトタイプ:
+
+[source,C]
+----
+char *weechat_utf8_add_offset (const char *string, int offset);
+----
+
+引数:
+
+* 'string': 文字列
+* 'offset': 文字数
+
+戻り値:
+
+* 文字列の N 文字後に進んだ位置へのポインタ (元文字列の最後より後の位置を指す場合は NULL)
+
+C 言語での使用例:
+
+[source,C]
+----
+char *str = "chêne";
+char *str2 = weechat_utf8_add_offset (str, 3); /* points to "ne" */
+----
+
+[NOTE]
+スクリプト API ではこの関数を利用できません。
+
+==== weechat_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 ではこの関数を利用できません。
+
+==== weechat_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 ではこの関数を利用できません。
+
+==== weechat_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); /* returns "chê" */
+/* ... */
+free (string);
+----
+
+[NOTE]
+スクリプト API ではこの関数を利用できません。
+
+[[directories]]
+=== ディレクトリ
+
+ディレクトリに関する関数。
+
+==== weechat_mkdir_home
+
+WeeChat ホームディレクトリの下にディレクトリを作成。
+
+プロトタイプ:
+
+[source,C]
+----
+int weechat_mkdir_home (char *directory, int mode);
+----
+
+引数:
+
+* 'directory': 作成するディレクトリの名前
+* 'mode': ディレクトリのモード
+
+戻り値:
+
+* ディレクトリの作成に成功した場合は 1、エラーが起きた場合は 0
+
+C 言語での使用例:
+
+[source,C]
+----
+if (!weechat_mkdir_home ("temp", 0755))
+{
+ /* error */
+}
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+weechat.mkdir_home(directory, mode)
+
+# example
+weechat.mkdir_home("temp", 0755)
+----
+
+==== weechat_mkdir
+
+ディレクトリを作成。
+
+プロトタイプ:
+
+[source,C]
+----
+int weechat_mkdir (char *directory, int mode);
+----
+
+引数:
+
+* 'directory': 作成するディレクトリの名前
+* 'mode': ディレクトリのモード
+
+戻り値:
+
+* ディレクトリの作成に成功した場合は 1、エラーが起きた場合は 0
+
+C 言語での使用例:
+
+[source,C]
+----
+if (!weechat_mkdir ("/tmp/mydir", 0755))
+{
+ /* error */
+}
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+weechat.mkdir(directory, mode)
+
+# example
+weechat.mkdir("/tmp/mydir", 0755)
+----
+
+==== weechat_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))
+{
+ /* error */
+}
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+weechat.mkdir_parents(directory, mode)
+
+# example
+weechat.mkdir_parents("/tmp/my/dir", 0755)
+----
+
+==== weechat_exec_on_files
+
+ディレクトリ中のファイルを探し、各ファイルに対してコールバックを実行。
+
+プロトタイプ:
+
+[source,C]
+----
+void weechat_exec_on_files (const char *directory,
+ int hidden_files,
+ void *data,
+ void (*callback)(void *data,
+ const char *filename));
+----
+
+引数:
+
+* 'directory': ファイルを検索するディレクトリ
+* 'hidden_files': 検索対象に隠しファイルを含める場合は 1、含めない場合は 0
+* 'data': WeeChat がコールバックを呼び出す際にコールバックに渡すポインタ
+* 'callback': 各ファイルに対して呼び出す関数、引数:
+** 'void *data': ポインタ
+** 'const char *filename': 見つかったファイルの名前
+
+C 言語での使用例:
+
+[source,C]
+----
+void callback (void *data, const char *filename)
+{
+ /* ... */
+}
+...
+weechat_exec_on_files ("/tmp", 0, NULL, &callback);
+----
+
+[NOTE]
+スクリプト API ではこの関数を利用できません。
+
+==== weechat_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]]
+=== ユーティリティ
+
+便利な関数。
+
+==== weechat_util_timeval_cmp
+
+2 つの "timeval" 構造体を比較。
+
+プロトタイプ:
+
+[source,C]
+----
+int weechat_util_timeval_cmp (struct timeval *tv1, struct timeval *tv2);
+----
+
+引数:
+
+* 'tv1': 1 番目の "timeval" 構造体
+* 'tv2': 2 番目の "timeval" 構造体
+
+戻り値:
+
+* tv1 < tv2 の場合は -1
+* tv1 == tv2 の場合は 0
+* tv1 > tv2 の場合は +1
+
+C 言語での使用例:
+
+[source,C]
+----
+if (weechat_util_timeval_cmp (&tv1, &tv2) > 0)
+{
+ /* tv1 > tv2 */
+}
+----
+
+[NOTE]
+スクリプト API ではこの関数を利用できません。
+
+==== weechat_util_timeval_diff
+
+2 つの "timeval" 構造体の差を (ミリ秒単位で) 返す。
+
+プロトタイプ:
+
+[source,C]
+----
+long weechat_util_timeval_diff (struct timeval *tv1, struct timeval *tv2);
+----
+
+引数:
+
+* 'tv1': 1 番目の "timeval" 構造体
+* 'tv2': 2 番目の "timeval" 構造体
+
+戻り値:
+
+* ミリ秒単位の差
+
+C 言語での使用例:
+
+[source,C]
+----
+long diff = weechat_util_timeval_diff (&tv1, &tv2);
+----
+
+[NOTE]
+スクリプト API ではこの関数を利用できません。
+
+==== weechat_util_timeval_add
+
+timeval 構造体に時間間隔 (ミリ秒単位) を追加
+
+プロトタイプ:
+
+[source,C]
+----
+void weechat_util_timeval_add (struct timeval *tv, long interval);
+----
+
+引数:
+
+* 'tv': timeval 構造体
+* 'interval': 時間間隔 (ミリ秒単位)
+
+C 言語での使用例:
+
+[source,C]
+----
+weechat_util_timeval_add (&tv, 2000); /* add 2 seconds */
+----
+
+[NOTE]
+スクリプト API ではこの関数を利用できません。
+
+==== weechat_util_get_time_string
+
+_WeeChat バージョン 0.3.2 以上で利用可。_
+
+日付や時間を "strftime" で作った文字列で取得。
+
+プロトタイプ:
+
+[source,C]
+----
+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 ではこの関数を利用できません。
+
+==== weechat_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]]
+=== ソート済みリスト
+
+ソート済みリスト関数。
+
+==== weechat_list_new
+
+新しいリストを作成。
+
+プロトタイプ:
+
+[source,C]
+----
+struct t_weelist *weechat_list_new ();
+----
+
+戻り値:
+
+* 新しいリストへのポインタ
+
+C 言語での使用例:
+
+[source,C]
+----
+struct t_weelist *list = weechat_list_new ();
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+list = weechat.list_new()
+
+# example
+list = weechat.list_new()
+----
+
+==== weechat_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]
+----
+# prototype
+item = weechat.list_add(list, data, where, user_data)
+
+# example
+item = weechat.list_add(list, "my data", weechat.WEECHAT_LIST_POS_SORT, "")
+----
+
+==== weechat_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]
+----
+# prototype
+item = weechat.list_search(list, data)
+
+# example
+item = weechat.list_search(list, "my data")
+----
+
+==== weechat_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]
+----
+# prototype
+pos_item = weechat.list_search_pos(list, data)
+
+# example
+pos_item = weechat.list_search_pos(list, "my data")
+----
+
+==== weechat_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]
+----
+# prototype
+item = weechat.list_casesearch(list, data)
+
+# example
+item = weechat.list_casesearch(list, "my data")
+----
+
+==== weechat_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]
+----
+# prototype
+pos_item = weechat.list_casesearch_pos(list, data)
+
+# example
+pos_item = weechat.list_casesearch_pos(list, "my data")
+----
+
+==== weechat_list_get
+
+リスト中の位置を指定して要素を返す。
+
+プロトタイプ:
+
+[source,C]
+----
+struct t_weelist_item *weechat_list_get (struct t_weelist *weelist,
+ int position);
+----
+
+引数:
+
+* 'weelist': リストへのポインタ
+* 'position': リスト中の位置 (1 番目の要素は 0)
+
+戻り値:
+
+* 見つかった要素へのポインタ、見つからなかった場合は NULL
+
+C 言語での使用例:
+
+[source,C]
+----
+struct t_weelist_item *item = weechat_list_get (list, 0); /* first item */
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+item = weechat.list_get(list, position)
+
+# example
+item = weechat.list_get(list, 0)
+----
+
+==== weechat_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]
+----
+# prototype
+weechat.list_set(item, value)
+
+# example
+weechat.list_set(item, "new data")
+----
+
+==== weechat_list_next
+
+リストから 1 つ後の要素を返す。
+
+プロトタイプ:
+
+[source,C]
+----
+struct t_weelist_item *weechat_list_next (struct t_weelist_item *item);
+----
+
+引数:
+
+* 'item': 要素へのポインタ
+
+戻り値:
+
+* 1 つ後の要素へのポインタ、ポインタがリストの最後を指す場合は NULL
+
+C 言語での使用例:
+
+[source,C]
+----
+struct t_weelist_item *next_item = weechat_list_next (item);
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+item = weechat.list_next(item)
+
+# example
+item = weechat.list_next(item)
+----
+
+==== weechat_list_prev
+
+リストから 1 つ前の要素を返す。
+
+プロトタイプ:
+
+[source,C]
+----
+struct t_weelist_item *weechat_list_prev (struct t_weelist_item *item);
+----
+
+引数:
+
+* 'item': 要素へのポインタ
+
+戻り値:
+
+* 1 つ前の要素へのポインタ、ポインタがリストの最初を指す場合は NULL
+
+C 言語での使用例:
+
+[source,C]
+----
+struct t_weelist_item *prev_item = weechat_list_prev (item);
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+item = weechat.list_prev(item)
+
+# example
+item = weechat.list_prev(item)
+----
+
+==== weechat_list_string
+
+ある要素の文字列値を返す。
+
+プロトタイプ:
+
+[source,C]
+----
+const char *weechat_list_string (struct t_weelist_item *item);
+----
+
+引数:
+
+* 'item': 要素へのポインタ
+
+戻り値:
+
+* 要素の文字列値
+
+C 言語での使用例:
+
+[source,C]
+----
+weechat_printf (NULL, "value of item: %s", weechat_list_string (item));
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+value = weechat.list_string(item)
+
+# example
+weechat.prnt("", "value of item: %s" % weechat.list_string(item))
+----
+
+==== weechat_list_size
+
+リストのサイズ (要素の個数) を返す。
+
+プロトタイプ:
+
+[source,C]
+----
+char *weechat_list_size (struct t_weelist *weelist);
+----
+
+引数:
+
+* 'weelist': 要素へのポインタ
+
+戻り値:
+
+* リストのサイズ (要素の個数)、リストが空の場合は 0
+
+C 言語での使用例:
+
+[source,C]
+----
+weechat_printf (NULL, "size of list: %d", weechat_list_size (list));
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+size = weechat.list_size(list)
+
+# example
+weechat.prnt("", "size of list: %d" % weechat.list_size(list))
+----
+
+==== weechat_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]
+----
+# prototype
+weechat.list_remove(list, item)
+
+# example
+weechat.list_remove(list, item)
+----
+
+==== weechat_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]
+----
+# prototype
+weechat.list_remove_all(list)
+
+# example
+weechat.list_remove_all(list)
+----
+
+==== weechat_list_free
+
+リストを開放。
+
+プロトタイプ:
+
+[source,C]
+----
+void weechat_list_free (struct t_weelist *weelist);
+----
+
+引数:
+
+* 'weelist': リストへのポインタ
+
+C 言語での使用例:
+
+[source,C]
+----
+weechat_list_free (list);
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+weechat.list_free(list)
+
+# example
+weechat.list_free(list)
+----
+
+[[hashtables]]
+=== ハッシュテーブル
+
+ハッシュテーブル関数。
+
+==== weechat_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 (*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': キーを"ハッシュ化"する (キーを整数値にする)
+ 際のコールバック、キーの種類が "buffer" 以外の場合、コールバックは
+ NULL でも可 (デフォルトのハッシュ関数を使います)、引数と戻り値:
+** 'struct t_hashtable *hashtable': ハッシュテーブルへのポインタ
+** 'const void *key': キー
+** 戻り値: キーのハッシュ値
+* 'callback_keycmp': 2 つのキーを比較する際のコールバック、キーの種類が
+ "buffer" 以外の場合、コールバックは NULL でも可
+ (デフォルトの比較関数を使います)、引数と戻り値:
+** 'struct t_hashtable *hashtable': ハッシュテーブルへのポインタ
+** 'const void *key1': 1 番目のキー
+** 'const void *key2': 2 番目のキー
+** 戻り値:
+*** 'key1' が 'key2' より小さい場合は負
+*** '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 ではこの関数を利用できません。
+
+==== weechat_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 ではこの関数を利用できません。
+
+==== weechat_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 ではこの関数を利用できません。
+
+==== weechat_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 ではこの関数を利用できません。
+
+==== weechat_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"))
+{
+ /* key is in hashtable */
+ /* ... */
+}
+----
+
+[NOTE]
+スクリプト API ではこの関数を利用できません。
+
+==== weechat_hashtable_map
+
+_WeeChat バージョン 0.3.3 以上で利用可。_
+
+ハッシュテーブルのすべてのエントリに対して関数を呼び出す。
+
+プロトタイプ:
+
+[source,C]
+----
+void 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)
+{
+ /* display key and value (they are both strings here) */
+ weechat_printf (NULL, "key: '%s', value: '%s'",
+ (const char *)key,
+ (const char *)value);
+}
+/* ... */
+weechat_hashtable_map (hashtable, &map_cb, NULL);
+----
+
+[NOTE]
+スクリプト API ではこの関数を利用できません。
+
+==== weechat_hashtable_map_string
+
+_WeeChat バージョン 0.3.7 以上で利用可。_
+
+ハッシュテーブルのすべてのエントリに対して関数を呼び出す、キーと値を文字列として関数に渡す。
+
+プロトタイプ:
+
+[source,C]
+----
+void 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)
+{
+ /* display key and value */
+ weechat_printf (NULL, "key: '%s', value: '%s'",
+ key, value);
+}
+/* ... */
+weechat_hashtable_map_string (hashtable, &map_cb, NULL);
+----
+
+[NOTE]
+スクリプト API ではこの関数を利用できません。
+
+==== weechat_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 ではこの関数を利用できません。
+
+==== weechat_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': キーのリストを含む文字列 (フォーマット: "key1,key2,key3")
+** 'keys_sorted': ソートされたキーのリストを含む文字列 (フォーマット: "key1,key2,key3")
+** 'values': 値のリストを含む文字列 (フォーマット: "value1,value2,value3")
+** 'keys_values': リストのキーと値を含む文字列
+ (フォーマット: "key1:value1,key2:value2,key3:value3")
+** 'keys_values_sorted': リストのキーと値を含む文字列 (キーでソート)
+ (フォーマット: "key1:value1,key2:value2,key3:value3")
+
+戻り値:
+
+* プロパティに対する結果の文字列
+
+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 ではこの関数を利用できません。
+
+==== weechat_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)
+{
+ /* ... */
+}
+
+weechat_hashtable_set_pointer (hashtable, "callback_free_value", &my_free_value_cb);
+----
+
+[NOTE]
+スクリプト API ではこの関数を利用できません。
+
+==== weechat_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': infolist 要素へのポインタ
+* 'prefix': infolist で名前のプレフィックスとして使う文字列
+
+戻り値:
+
+* 成功した場合は 1、エラーが起きた場合は 0
+
+C 言語での使用例:
+
+[source,C]
+----
+weechat_hashtable_add_to_infolist (hashtable, infolist_item, "testhash");
+
+/* if hashtable contains:
+ "key1" => "value 1"
+ "key2" => "value 2"
+ then following variables will be added to infolist item:
+ "testhash_name_00000" = "key1"
+ "testhash_value_00000" = "value 1"
+ "testhash_name_00001" = "key2"
+ "testhash_value_00001" = "value 2"
+*/
+----
+
+[NOTE]
+スクリプト API ではこの関数を利用できません。
+
+==== weechat_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 ではこの関数を利用できません。
+
+==== weechat_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 ではこの関数を利用できません。
+
+==== weechat_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]]
+=== 設定ファイル
+
+設定ファイルに関する関数。
+
+==== weechat_config_new
+
+新しい設定ファイルを作成。
+
+プロトタイプ:
+
+[source,C]
+----
+struct t_config_file *weechat_config_new (const char *name,
+ int (*callback_reload)(void *data,
+ struct t_config_file *config_file),
+ void *callback_reload_data);
+----
+
+引数:
+
+* 'name': 設定ファイルの名前 (パスと拡張子は不要)
+* 'callback_reload': `/reload` で設定ファイルを再読み込みする際に呼び出す関数
+ (任意、NULL でも可)、引数と戻り値:
+** '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_data': WeeChat が reload
+ コールバックを呼び出す際にコールバックに渡すポインタ
+
+戻り値:
+
+* 新しい設定ファイルへのポインタ、エラーが起きた場合は NULL
+
+[NOTE]
+この関数はディスク上にファイルを作りません。ファイルを作るには
+<<_weechat_config_write,weechat_config_write>>
+関数を使ってください。この関数を呼び出す必要があるのは
+(<<_weechat_config_new_section,weechat_config_new_section>> を使って) セクションもしくは
+(<<_weechat_config_new_option,weechat_config_new_option>> を使って) オプションを追加した後だけです。
+
+C 言語での使用例:
+
+[source,C]
+----
+int
+my_config_reload_cb (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);
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+config_file = weechat.config_new(name, calback_reload, callback_reload_data)
+
+# example
+def my_config_reload_cb(data, config_file):
+ # ...
+ return weechat.WEECHAT_RC_OK
+
+config_file = weechat.config_new("test", "my_config_reload_cb", "")
+----
+
+==== weechat_config_new_section
+
+設定ファイルに新しいセクションを作成する。
+
+プロトタイプ:
+
+[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)(void *data,
+ struct t_config_file *config_file,
+ struct t_config_section *section,
+ const char *option_name,
+ const char *value),
+ void *callback_read_data,
+ int (*callback_write)(void *data,
+ struct t_config_file *config_file,
+ const char *section_name),
+ void *callback_write_data,
+ int (*callback_write_default)(void *data,
+ struct t_config_file *config_file,
+ const char *section_name);
+ void *callback_write_default_data,
+ int (*callback_create_option)(void *data,
+ struct t_config_file *config_file,
+ struct t_config_section *section,
+ const char *option_name,
+ const char *value),
+ void *callback_create_option_data,
+ int (*callback_delete_option)(void *data,
+ struct t_config_file *config_file,
+ struct t_config_section *section,
+ struct t_config_option *option),
+ void *callback_delete_option_data);
+----
+
+引数:
+
+* 'config_file': 設定ファイルへのポインタ
+* 'name': セクションの名前
+* 'user_can_add_options':
+ ユーザがこのセクションに新しいオプションを作成することを許可する場合は 1、禁止する場合は 0
+* 'user_can_delete_options':
+ ユーザがこのセクションからオプションを削除することを許可する場合は 1、禁止する場合は 0
+* 'callback_read': このセクションに含まれるオプションがディスクから読まれた際に呼び出す関数
+ (特別な関数を使ってセクションを読み出す必要がある場合を除いて、殆どの場合は
+ NULL を指定する)、引数と戻り値:
+** '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_data': WeeChat がコールバックを呼び出す際にコールバックに渡すポインタ
+* 'callback_write': セクションをファイルに書き込む際に呼び出す関数
+ (特別な関数を使ってセクションを書き込む必要がある場合を除いて、殆どの場合は
+ NULL を指定する)、引数と戻り値:
+** 'void *data': ポインタ
+** 'struct t_config_file *config_file': 設定ファイルへのポインタ
+** 'struct t_config_section *section': セクションへのポインタ
+** 'const char *option_name': オプションの名前
+** 戻り値:
+*** 'WEECHAT_CONFIG_WRITE_OK'
+*** 'WEECHAT_CONFIG_WRITE_ERROR'
+*** 'WEECHAT_CONFIG_WRITE_MEMORY_ERROR'
+* callback_write_data: WeeChat がコールバックを呼び出す際にコールバックに渡すポインタ
+* callback_write_default:
+ セクションのデフォルト値が必ずファイルに書き込まれる際に呼び出す関数、引数と戻り値:
+** '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_data': WeeChat
+ がコールバックを呼び出す際にコールバックに渡すポインタ
+* 'callback_create_option': セクションに新しいオプションを作成する際に呼び出す関数
+ (セクションに新しいオプションを作成することを禁止する場合は
+ NULL)、引数と戻り値:
+** '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_data': WeeChat
+ がコールバックを呼び出す際にコールバックに渡すポインタ
+* 'callback_delete_option': セクションからオプションを削除する際に呼び出す関数
+ (セクションからオプションを削除することを禁止する場合は
+ NULL)、引数と戻り値:
+** '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_data': WeeChat
+ がコールバックを呼び出す際にコールバックに渡すポインタ
+
+戻り値:
+
+* 設定ファイルの新しいセクションへのポインタ、エラーが起きた場合は NULL
+
+C 言語での使用例:
+
+[source,C]
+----
+int
+my_section_read_cb (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_OPTION_NOT_FOUND; */
+ /* return WEECHAT_CONFIG_OPTION_SET_ERROR; */
+}
+
+int
+my_section_write_cb (void *data, struct t_config_file *config_file,
+ const char *section_name)
+{
+ /* ... */
+
+ return WEECHAT_CONFIG_WRITE_OK;
+ /* return WEECHAT_CONFIG_WRITE_ERROR; */
+}
+
+int
+my_section_write_default_cb (void *data, struct t_config_file *config_file,
+ const char *section_name)
+{
+ /* ... */
+
+ return WEECHAT_CONFIG_WRITE_OK;
+ /* return WEECHAT_CONFIG_WRITE_ERROR; */
+}
+
+int
+my_section_create_option_cb (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_SAME_VALUE;
+ /* return WEECHAT_CONFIG_OPTION_SET_ERROR; */
+}
+
+int
+my_section_delete_option_cb (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_ERROR; */
+}
+
+/* standard section, user can not add/delete options */
+struct t_config_section *new_section1 =
+ weechat_config_new_section (config_file, "section1", 0, 0,
+ NULL, NULL, /* read callback */
+ NULL, NULL, /* write callback */
+ NULL, NULL, /* write default callback */
+ NULL, NULL, /* create option callback */
+ NULL, NULL); /* delete option callback */
+
+/* special section, user can add/delete options, and options need
+ callback to be read/written */
+struct t_config_section *new_section2 =
+ weechat_config_new_section (config_file, "section2", 1, 1,
+ &my_section_read_cb, NULL,
+ &my_section_write_cb, NULL,
+ &my_section_write_default_cb, NULL,
+ &my_section_create_option_cb, NULL,
+ &my_section_delete_option_cb, NULL);
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+section = weechat.config_new_section(config_file, name,
+ user_can_add_options, user_can_delete_options,
+ callback_read, callback_read_data,
+ callback_write, callback_write_data,
+ callback_create_option, callback_create_option_data,
+ callback_delete_option, callback_delete_option_data)
+
+# example
+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", "")
+----
+
+==== weechat_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]
+----
+# prototype
+section = weechat.config_search_section(config_file, section_name)
+
+# example
+section = weechat.config_search_section(config_file, "section")
+----
+
+==== weechat_config_new_option
+
+設定ファイルのあるセクションに新しいオプションを作成。
+
+プロトタイプ:
+
+[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)(void *data,
+ struct t_config_option *option,
+ const char *value),
+ void *callback_check_value_data,
+ void (*callback_change)(void *data,
+ struct t_config_option *option),
+ void *callback_change_data,
+ void (*callback_delete)(void *data,
+ struct t_config_option *option),
+ void *callback_delete_data);
+----
+
+引数:
+
+* 'config_file': 設定ファイルへのポインタ
+* 'section': セクションへのポインタ
+* 'name': オプションの名前
+* 'type': オプションの型:
+** 'boolean': ブール値 (on/off)
+** 'integer': 整数値 (任意で文字列を受けるようにすることも可)
+** 'string': 文字列
+** 'color': 色
+* 'description': オプションの説明
+* 'string_values': 文字列で値を受ける
+ ("|" で区切る)、'integer' 型の場合に使う (任意)
+* 'min': 最小値 ('integer' 型で有効)
+* 'max': 最大値 ('integer' 型で有効)
+* 'default_value': オプションのデフォルト値 (オプションをリセットした際に使われる)
+* 'value': オプションの値
+* 'null_value_allowed': オプションに 'null' (未定義値)
+ を設定することを許可する場合に 1、禁止する場合は 0
+* 'callback_check_value': オプションの新しい値をチェックする際に呼び出す関数
+ (任意)、引数と戻り値:
+** 'void *data': ポインタ
+** 'struct t_config_option *option': オプションへのポインタ
+** 'const char *value': オプションの新しい値
+** 戻り値:
+*** 値が有効の場合は 1
+*** 値が無効の場合は 0
+* 'callback_check_value_data': WeeChat が check_value
+ コールバックを呼び出す際にコールバックに渡すポインタ
+* 'callback_change': オプションの値を変更した際に呼び出す関数
+ (任意)、引数:
+** 'void *data': ポインタ
+** 'struct t_config_option *option': オプションへのポインタ
+* 'callback_change_data': WeeChat が change
+ コールバックを呼び出す際にコールバックに渡すポインタ
+* 'callback_delete': オプションを削除する前に際に呼び出す関数
+ (任意)、引数:
+** 'void *data': ポインタ
+** 'struct t_config_option *option': オプションへのポインタ
+* 'callback_delete_data': WeeChat が delete
+ コールバックを呼び出す際にコールバックに渡すポインタ
+
+戻り値:
+
+* セクションの新しいオプションへのポインタ、エラーが起きた場合は NULL
+
+C 言語での使用例:
+
+[source,C]
+----
+/* boolean */
+struct t_config_option *option1 =
+ weechat_config_new_option (config_file, section, "option1", "boolean",
+ "My option, type boolean"
+ NULL, /* string values */
+ 0, 0, /* min, max */
+ "on", /* default */
+ "on", /* value */
+ 0, /* null value allowed */
+ NULL, NULL, /* check callback */
+ NULL, NULL, /* change callback */
+ NULL, NULL); /* delete callback */
+
+/* integer */
+struct t_config_option *option2 =
+ weechat_config_new_option (config_file, section, "option2", "integer",
+ "My option, type integer"
+ NULL, /* string values */
+ 0, 100, /* min, max */
+ "15", /* default */
+ "15", /* value */
+ 0, /* null value allowed */
+ NULL, NULL, /* check callback */
+ NULL, NULL, /* change callback */
+ NULL, NULL); /* delete callback */
+
+/* integer (with string values) */
+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", /* string values */
+ 0, 0, /* min, max */
+ "bottom", /* default */
+ "bottom", /* value */
+ 0, /* null value allowed */
+ NULL, NULL, /* check callback */
+ NULL, NULL, /* change callback */
+ NULL, NULL); /* delete callback */
+
+/* string */
+struct t_config_option *option4 =
+ weechat_config_new_option (config_file, section, "option4", "string",
+ "My option, type string"
+ NULL, /* string values */
+ 0, 0, /* min, max */
+ "test", /* default */
+ "test", /* value */
+ 1, /* null value allowed */
+ NULL, NULL, /* check callback */
+ NULL, NULL, /* change callback */
+ NULL, NULL); /* delete callback */
+
+/* color */
+struct t_config_option *option5 =
+ weechat_config_new_option (config_file, section, "option5", "color",
+ "My option, type color"
+ NULL, /* string values */
+ 0, 0, /* min, max */
+ "lightblue", /* default */
+ "lightblue", /* value */
+ 0, /* null value allowed */
+ NULL, NULL, /* check callback */
+ NULL, NULL, /* change callback */
+ NULL, NULL); /* delete callback */
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+option = weechat.config_new_option(config_file, section, name, type, description,
+ string_values, min, max, default_value, value, null_value_allowed,
+ callback_check_value, callback_check_value_data,
+ callback_change, callback_change_data,
+ callback_delete, callback_delete_data)
+
+# example
+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 つの文字列をからなる配列を
+1 つ渡してください (これは Ruby が 関数に 15 個以上の引数を渡せないことが原因です)、より詳しい情報は
+'WeeChat スクリプト作成ガイド' を参照してください _(バージョン 0.4.1 で修正済み)_ 。
+
+==== weechat_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]
+----
+# prototype
+option = weechat.config_search_option(config_file, section, option_name)
+
+# example
+option = weechat.config_search_option(config_file, section, "option")
+----
+
+==== weechat_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)
+{
+ /* option found */
+}
+else
+{
+ /* option not found */
+}
+----
+
+[NOTE]
+スクリプト API ではこの関数を利用できません。
+
+==== weechat_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': オプションの完全な名前 (フォーマット: "file.section.option")
+* '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)
+{
+ /* option found */
+}
+else
+{
+ /* option not found */
+}
+----
+
+[NOTE]
+スクリプト API ではこの関数を利用できません。
+
+==== weechat_config_string_to_boolean
+
+テキストがブール値としての "true" または "false" かをチェック。
+
+プロトタイプ:
+
+[source,C]
+----
+int weechat_config_string_to_boolean (const char *text);
+----
+
+引数:
+
+* 'text': チェックするテキスト
+
+戻り値:
+
+* テキストが "true" ("on"、"yes"、"y"、"true"、"t"、"1") の場合は 1
+* テキストが "false" ("off"、"no"、"n"、"false"、"f"、"0") の場合は 0
+
+C 言語での使用例:
+
+[source,C]
+----
+if (weechat_config_string_to_boolean (option_value))
+{
+ /* value is "true" */
+}
+else
+{
+ /* value is "false" */
+}
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+value = weechat.config_string_to_boolean(text)
+
+# example
+if weechat.config_string_to_boolean(text):
+ # ...
+----
+
+==== weechat_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]
+----
+# prototype
+rc = weechat.config_option_reset(option, run_callback)
+
+# example
+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:
+ # ...
+----
+
+==== weechat_config_option_set
+
+オプションに新しい値を設定。
+
+プロトタイプ:
+
+[source,C]
+----
+int weechat_config_option_set (struct t_config_option *option,
+ const char *value, int run_callback);
+----
+
+引数:
+
+* 'option': オプションへのポインタ
+* 'value': オプションの新しい値
+* 'run_callback': オプションが変更された際に、change コールバックを呼び出す場合は
+ 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_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]
+----
+# prototype
+rc = weechat.config_option_set(option, value, run_callback)
+
+# example
+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:
+ # ...
+----
+
+==== weechat_config_option_set_null
+
+あるオプションに null (未定義値) を設定する。
+
+プロトタイプ:
+
+[source,C]
+----
+int weechat_config_option_set_null (struct t_config_option *option,
+ int run_callback);
+----
+
+引数:
+
+* 'option': オプションへのポインタ
+* 'run_callback': オプションが (null 以外の値に) 変更された際に、change
+ コールバックを呼び出す場合は 1、呼び出さない場合は 0
+
+[NOTE]
+オプションに null を設定することが許可されている場合にのみ null を設定できます
+(<<_weechat_config_new_option,weechat_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]
+----
+# prototype
+rc = weechat.config_option_set_null(option, run_callback)
+
+# example
+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:
+ # ...
+----
+
+==== weechat_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]
+----
+# prototype
+rc = weechat.config_option_unset(option)
+
+# example
+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:
+ # ...
+----
+
+==== weechat_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]
+----
+# prototype
+weechat.config_option_rename(option, new_name)
+
+# example
+weechat.config_option_rename(option, "new_name")
+----
+
+==== weechat_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 *')
+** 'type': オプションの型 ('int *')
+** 'description': オプションの説明 ('char *')
+** 'string_values': 文字列値 ('char *')
+** 'min': 最大値 ('int *')
+** 'max': 最小値 ('int *')
+** 'default_value': デフォルト値 (オプションの型に依存)
+** 'value': 現在の値 (オプションの型に依存)
+** 'prev_option': 1 つ前のオプションへのポインタ ('struct t_config_option *')
+** 'next_option': 1 つ後のオプションへのポインタ ('struct t_config_option *')
+
+戻り値:
+
+* 要求されたプロパティへのポインタ
+
+C 言語での使用例:
+
+[source,C]
+----
+char *description = weechat_config_option_get_pointer (option, "description");
+----
+
+[NOTE]
+スクリプト API ではこの関数を利用できません。
+
+==== weechat_config_option_is_null
+
+オプションの値が "null" (未定義値) か否かを確認。
+
+プロトタイプ:
+
+[source,C]
+----
+int weechat_config_option_is_null (struct t_config_option *option);
+----
+
+引数:
+
+* 'option': オプションへのポインタ
+
+戻り値:
+
+* オプションの値が "null" の場合は 1
+* オプションの値が "null" でない場合は 0
+
+C 言語での使用例:
+
+[source,C]
+----
+if (weechat_config_option_is_null (option))
+{
+ /* value is "null" */
+}
+else
+{
+ /* value is not "null" */
+}
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+is_null = weechat.config_option_is_null(option)
+
+# example
+if weechat.config_option_is_null(option):
+ # ...
+----
+
+==== weechat_config_option_default_is_null
+
+あるオプションのデフォルト値が "null" (未定義値) か否かを確認。
+
+プロトタイプ:
+
+[source,C]
+----
+int weechat_config_option_default_is_null (struct t_config_option *option);
+----
+
+引数:
+
+* 'option': オプションへのポインタ
+
+戻り値:
+
+* オプションの値が "null" の場合は 1
+* オプションの値が "null" でない場合は 0
+
+C 言語での使用例:
+
+[source,C]
+----
+if (weechat_config_option_default_is_null (option))
+{
+ /* default value is "null" */
+}
+else
+{
+ /* default value is not "null" */
+}
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+is_null = weechat.config_option_default_is_null(option)
+
+# example
+if weechat.config_option_default_is_null(option):
+ # ...
+----
+
+==== weechat_config_boolean
+
+オプションのブール値を返す。
+
+プロトタイプ:
+
+[source,C]
+----
+int weechat_config_boolean (struct t_config_option *option);
+----
+
+引数:
+
+* 'option': オプションへのポインタ
+
+戻り値:
+
+* オプションのブール値 (0 または 1)
+
+C 言語での使用例:
+
+[source,C]
+----
+struct t_config_option *option = weechat_config_get ("plugin.section.option");
+if (weechat_config_boolean (option))
+{
+ /* value is "true" */
+}
+else
+{
+ /* value is "false" */
+}
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+value = weechat.config_boolean(option)
+
+# example
+option = weechat.config_get("plugin.section.option")
+if weechat.config_boolean(option):
+ # ...
+----
+
+==== weechat_config_boolean_default
+
+オプションのデフォルトブール値を返す。
+
+プロトタイプ:
+
+[source,C]
+----
+int weechat_config_boolean_default (struct t_config_option *option);
+----
+
+引数:
+
+* 'option': オプションへのポインタ
+
+戻り値:
+
+* オプションのデフォルトブール値 (0 または 1)
+
+C 言語での使用例:
+
+[source,C]
+----
+struct t_config_option *option = weechat_config_get ("plugin.section.option");
+if (weechat_config_boolean_default (option))
+{
+ /* value is "true" */
+}
+else
+{
+ /* value is "false" */
+}
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+value = weechat.config_boolean_default(option)
+
+# example
+option = weechat.config_get("plugin.section.option")
+if weechat.config_boolean_default(option):
+ # ...
+----
+
+==== weechat_config_integer
+
+オプションの整数値を返す。
+
+プロトタイプ:
+
+[source,C]
+----
+int weechat_config_integer (struct t_config_option *option);
+----
+
+引数:
+
+* 'option': オプションへのポインタ
+
+戻り値:
+
+* オプションの整数値
+
+C 言語での使用例:
+
+[source,C]
+----
+struct t_config_option *option = weechat_config_get ("plugin.section.option");
+int value = weechat_config_integer (option);
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+value = weechat.config_integer(option)
+
+# example
+option = weechat.config_get("plugin.section.option")
+value = weechat.config_integer(option)
+----
+
+==== weechat_config_integer_default
+
+オプションのデフォルト整数値を返す。
+
+プロトタイプ:
+
+[source,C]
+----
+int weechat_config_integer_default (struct t_config_option *option);
+----
+
+引数:
+
+* 'option': オプションへのポインタ
+
+戻り値:
+
+* オプションのデフォルト整数値
+
+C 言語での使用例:
+
+[source,C]
+----
+struct t_config_option *option = weechat_config_get ("plugin.section.option");
+int value = weechat_config_integer_default (option);
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+value = weechat.config_integer_default(option)
+
+# example
+option = weechat.config_get("plugin.section.option")
+value = weechat.config_integer_default(option)
+----
+
+==== weechat_config_string
+
+オプションの文字列値を返す。
+
+プロトタイプ:
+
+[source,C]
+----
+const char *weechat_config_string (struct t_config_option *option);
+----
+
+引数:
+
+* 'option': オプションへのポインタ
+
+戻り値:
+
+* オプションの文字列値
+
+C 言語での使用例:
+
+[source,C]
+----
+struct t_config_option *option = weechat_config_get ("plugin.section.option");
+const char *value = weechat_config_string (option);
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+value = weechat.config_string(option)
+
+# example
+option = weechat.config_get("plugin.section.option")
+value = weechat.config_string(option)
+----
+
+==== weechat_config_string_default
+
+オプションのデフォルト文字列値を返す。
+
+プロトタイプ:
+
+[source,C]
+----
+const char *weechat_config_string_default (struct t_config_option *option);
+----
+
+引数:
+
+* 'option': オプションへのポインタ
+
+戻り値:
+
+* オプションのデフォルト文字列値
+
+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]
+----
+# prototype
+value = weechat.config_string_default(option)
+
+# example
+option = weechat.config_get("plugin.section.option")
+value = weechat.config_string_default(option)
+----
+
+==== weechat_config_color
+
+オプションの色値を返す。
+
+プロトタイプ:
+
+[source,C]
+----
+const char *weechat_config_color (struct t_config_option *option);
+----
+
+引数:
+
+* 'option': オプションへのポインタ
+
+戻り値:
+
+* オプションの色値 (色の名前を収めた文字列)
+
+C 言語での使用例:
+
+[source,C]
+----
+struct t_config_option *option = weechat_config_get ("plugin.section.option");
+const char *color = weechat_config_color (option);
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+value = weechat.config_color(option)
+
+# example
+option = weechat.config_get("plugin.section.option")
+value = weechat.config_color(option)
+----
+
+==== weechat_config_color_default
+
+オプションのデフォルト色値を返す。
+
+プロトタイプ:
+
+[source,C]
+----
+const char *weechat_config_color_default (struct t_config_option *option);
+----
+
+引数:
+
+* 'option': オプションへのポインタ
+
+戻り値:
+
+* オプションのデフォルト色値 (色の名前を収めた文字列)
+
+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]
+----
+# prototype
+value = weechat.config_color_default(option)
+
+# example
+option = weechat.config_get("plugin.section.option")
+value = weechat.config_color_default(option)
+----
+
+==== weechat_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 (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]
+----
+# prototype
+weechat.config_write_option(config_file, option)
+
+# example
+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
+----
+
+==== weechat_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 (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]
+----
+# prototype
+weechat.config_write_line(config_file, option_name, value)
+
+# example
+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
+----
+
+==== weechat_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]
+----
+# prototype
+rc = weechat.config_write(config_file)
+
+# example
+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:
+ # ...
+----
+
+==== weechat_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]
+----
+# prototype
+rc = weechat.config_read(config_file)
+
+# example
+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:
+ # ...
+----
+
+==== weechat_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]
+----
+# prototype
+rc = weechat.config_reload(config_file)
+
+# example
+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:
+ # ...
+----
+
+==== weechat_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]
+----
+# prototype
+weechat.config_option_free(option)
+
+# example
+weechat.config_option_free(option)
+----
+
+==== weechat_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]
+----
+# prototype
+weechat.config_section_free_options(section)
+
+# example
+weechat.config_section_free_options(section)
+----
+
+==== weechat_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]
+----
+# prototype
+weechat.config_section_free(section)
+
+# example
+weechat.config_section_free(section)
+----
+
+==== weechat_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]
+----
+# prototype
+weechat.config_free(config_file)
+
+# example
+weechat.config_free(config_file)
+----
+
+==== weechat_config_get
+
+完全な名前でオプションを検索。
+
+プロトタイプ:
+
+[source,C]
+----
+struct t_config_option *weechat_config_get (const char *option_name);
+----
+
+引数:
+
+* 'option_name': オプションの完全な名前 (フォーマット: "file.section.option")
+
+戻り値:
+
+* 見つかったオプションへのポインタ、見つからなかった場合は NULL
+
+C 言語での使用例:
+
+[source,C]
+----
+struct t_config_option *option = weechat_config_get ("weechat.look.item_time_format");
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+option = weechat.config_get(option_name)
+
+# example
+option = weechat.config_get("weechat.look.item_time_format")
+----
+
+==== weechat_config_get_plugin
+
+プラグインの設定ファイル (plugins.conf) からオプションを検索。
+
+プロトタイプ:
+
+[source,C]
+----
+const char *weechat_config_get_plugin (const char *option_name);
+----
+
+引数:
+
+* 'option_name': オプション名、プレフィックス "plugins.var.xxx."
+ が自動的に付けられる (ここで "xxx" は現在のプラグイン名)。
+
+戻り値:
+
+* 見つかったオプションの値、オプションが見つからなければ NULL
+
+C 言語での使用例:
+
+[source,C]
+----
+/* if current plugin is "test", then look for value of option
+ "plugins.var.test.option" in file plugins.conf */
+char *value = weechat_config_get_plugin ("option");
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+value = weechat.config_get_plugin(option_name)
+
+# example
+value = weechat.config_get_plugin("option")
+----
+
+==== weechat_config_is_set_plugin
+
+オプションがプラグインの設定ファイル (plugins.conf) で設定されているか否かを確認。
+
+プロトタイプ:
+
+[source,C]
+----
+int weechat_config_is_set_plugin (const char *option_name);
+----
+
+引数:
+
+* 'option_name': オプション名、プレフィックス "plugins.var.xxx."
+ が自動的に付けられる (ここで "xxx" は現在のプラグイン名)。
+
+戻り値:
+
+* オプションが設定されている場合は 1、オプションが存在しない場合は 0
+
+C 言語での使用例:
+
+[source,C]
+----
+if (weechat_config_is_set_plugin ("option"))
+{
+ /* option is set */
+}
+else
+{
+ /* option does not exist */
+}
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+value = weechat.config_is_set_plugin(option_name)
+
+# example
+if weechat.config_is_set_plugin("option"):
+ # option is set
+ # ...
+else:
+ # option does not exist
+ # ...
+----
+
+==== weechat_config_set_plugin
+
+プラグイン設定ファイル (plugins.conf) のオプションの新しい値を設定。
+
+プロトタイプ:
+
+[source,C]
+----
+int weechat_config_set_plugin (const char *option_name, const char *value);
+----
+
+引数:
+
+* 'option_name': オプション名、プレフィックス "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]
+----
+# prototype
+rc = weechat.config_set_plugin(option_name, value)
+
+# example
+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:
+ # ...
+----
+
+==== weechat_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': オプション名、プレフィックス "plugins.var.xxx."
+ が自動的に付けられる (ここで "xxx" は現在のプラグイン名)。
+* 'description': オプションの説明
+
+[NOTE]
+オプション (plugins.var.xxx.option_name)
+が存在しなくても問題ありません。この説明を持つような名前のオプションが作成されます。
+
+C 言語での使用例:
+
+[source,C]
+----
+weechat_config_set_desc_plugin ("option", "description of option");
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+weechat.config_set_desc_plugin(option_name, description)
+
+# example
+version = weechat.info_get("version_number", "") or 0
+if int(version) >= 0x00030500:
+ weechat.config_set_desc_plugin("option", "description of option")
+----
+
+==== weechat_config_unset_plugin
+
+プラグイン設定ファイル (plugins.conf) のオプションをアンセットする。
+
+プロトタイプ:
+
+[source,C]
+----
+int weechat_config_unset_plugin (const char *option_name);
+----
+
+引数:
+
+* 'option_name': オプション名、プレフィックス "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]
+----
+# prototype
+rc = weechat.config_unset_plugin(option_name)
+
+# example
+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]]
+=== キー割り当て
+
+キー割り当てに関する関数。
+
+==== weechat_key_bind
+
+_WeeChat バージョン 0.3.6 以上で利用可。_
+
+新しいキー割り当てを追加。
+
+[NOTE]
+コマンド `/key bind`
+とは異なり、この関数がすでに存在しているキー割り当てを変更することはありません。新しいキー割り当てを作成するだけです。キー割り当てを削除するには
+<<_weechat_key_unbind,weechat_key_unbind>> を使ってください。
+
+プロトタイプ:
+
+[source,C]
+----
+int weechat_key_bind (const char *context, struct t_hashtable *keys);
+----
+
+引数:
+
+* 'context': キーのコンテキスト:
+** 'default': デフォルトコンテキスト (一般的な動作)
+** 'search': 検索コンテキスト (バッファ中のテキストを検索中)
+** 'cursor': スクリーン上のカーソルを自由に移動
+** 'mouse': マウスイベント用のキー
+* 'keys': キー割り当てを収めたハッシュテーブル
+
+戻り値:
+
+* 追加されたキー割り当て
+
+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]
+----
+# prototype
+num_keys = weechat.key_bind(context, keys)
+
+# example
+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)
+----
+
+==== weechat_key_unbind
+
+_WeeChat バージョン 0.3.6 以上で利用可。_
+
+キー割り当てを削除。
+
+[WARNING]
+この関数を呼び出す際には、ユーザのキー割り当てを削除しないように注意してください。
+
+プロトタイプ:
+
+[source,C]
+----
+int weechat_key_unbind (const char *context, const char *key);
+----
+
+引数:
+
+* 'context': キーのコンテキスト (<<_weechat_key_bind,weechat_key_bind>> を参照)
+* 'key': 削除するキーまたは特殊値 "area:XXX" で1 番目または 2
+ 番目の領域から 'XXX' をもつすべてのキーを削除する
+
+戻り値:
+
+* 削除されたキー割り当ての個数
+
+C 言語での使用例:
+
+[source,C]
+----
+/* remove a single key */
+weechat_key_unbind ("mouse", "@chat(plugin.buffer):button1");
+
+/* remove all keys with area "chat(plugin.buffer)" */
+weechat_key_unbind ("mouse", "area:chat(plugin.buffer)");
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+num_keys = weechat.key_unbind(context, key)
+
+# examples
+
+# remove a single key
+weechat.key_unbind("mouse", "@chat(plugin.buffer):button1")
+
+# remove all keys with area "chat(python.test)"
+weechat.key_unbind("mouse", "area:chat(python.test)")
+----
+
+[[display]]
+=== 表示
+
+バッファにテキストを表示する関数。
+
+==== weechat_prefix
+
+プレフィックスを返す。
+
+プロトタイプ:
+
+[source,C]
+----
+const char *weechat_prefix (const char *prefix);
+----
+
+引数:
+
+* 'prefix': プレフィックスの名前 (以下の表を参照)
+
+戻り値:
+
+* プレフィックスの値
+ (プレフィックスと色コードを含む文字列)、プレフィックスが見つからない場合は空文字列
+
+List of prefixes:
+
+[width="70%",cols="^2e,^1,^3,5",options="header"]
+|===
+| プレフィックス | 値 | 色 | 説明
+| error | `=!=` | yellow | エラーメッセージ
+| network | `--` | magenta | ネットワークからのメッセージ
+| action | `*` | white | 本人の動作
+| join | `-->` | lightgreen | 誰かが現在のチャットに参加
+| quit | `<--` | lightred | 誰かが現在のチャットから退出
+|===
+
+[NOTE]
+値と色はコマンド `/set` でカスタマイズできます。
+
+C 言語での使用例:
+
+[source,C]
+----
+weechat_printf (NULL, "%sThis is an error...", weechat_prefix ("error"));
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+value = weechat.prefix(prefix)
+
+# example
+weechat.prnt("", "%sThis is an error..." % weechat.prefix("error"))
+----
+
+==== weechat_color
+
+表示する色コードを文字列で返す。
+
+プロトタイプ:
+
+[source,C]
+----
+const char *weechat_color (const char *color_name);
+----
+
+引数:
+
+* 'color_name': 色の名前、以下の中から 1 つ:
+** WeeChat オプション名 (weechat.color.xxx の xxx)、例えば 'chat_delimiters'
+** 任意で属性や背景色を指定した色 (以下を参照)
+** 属性:
+*** '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 以上で利用可)_
+
+色のフォーマット: 属性 (任意) + 色名 + ",background"
+(任意)。以下の属性を使えます:
+
+* `*` : 太字
+* `!` : 色反転
+* `/` : イタリック
+* `_` : 下線
+* `|` : 属性を保存: 色を変更する際に太字/色反転/イタリック/下線の状態をリセットしない
+ _(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]
+----
+# prototype
+value = weechat.color(color_name)
+
+# example
+weechat.prnt("", "Color: %sblue %sdefault color %syellow on red"
+ % (weechat.color("blue"), weechat.color("chat"), weechat.color("yellow,red")))
+----
+
+==== weechat_printf
+
+バッファにメッセージを表示。
+
+プロトタイプ:
+
+[source,C]
+----
+void weechat_printf (struct t_gui_buffer *buffer, const char *message, ...);
+----
+
+引数:
+
+* 'buffer': バッファへのポインタ、NULL の場合は WeeChat バッファにメッセージを表示
+* 'message': 表示するメッセージ
+
+[NOTE]
+メッセージに含まれる最初のタブ文字 ("\t") はメッセージのプレフィックスを分割するために使われます。 +
+メッセージに複数のタブ文字が含まれ、プレフィックスを使いたくない場合は、空白、タブ文字、メッセージのように使ってください
+(以下の例を参照): これでプレフィックスが無くなります
+(タブ文字の前の空白は表示されません)。
+
+[NOTE]
+2 つ連続したタブ文字 ("\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]
+----
+# prototype
+weechat.prnt(buffer, message)
+
+# example
+weechat.prnt("", "Hello on WeeChat buffer")
+weechat.prnt(buffer, "Hello on this buffer")
+weechat.prnt(buffer, "%sThis is an error!" % weechat.prefix("error"))
+weechat.prnt(buffer, " \tMessage without prefix but with \t some \t tabs")
+weechat.prnt(buffer, "\t\tMessage without time/alignment")
+weechat.prnt(buffer, "\t\t") # empty line (without time)
+----
+
+[NOTE]
+この関数をスクリプトの中で実行するには "print" (Python の場合は "prnt") と綴ります。
+
+==== weechat_printf_date
+
+日付を指定してバッファにメッセージを表示。
+
+プロトタイプ:
+
+[source,C]
+----
+void weechat_printf_date (struct t_gui_buffer *buffer, time_t date,
+ const char *message, ...);
+----
+
+引数:
+
+* 'buffer': バッファへのポインタ、NULL の場合、メッセージは WeeChat バッファに表示
+* 'date': メッセージの日付 (0 は現在の日付/時間を意味する)
+* 'message': 表示するメッセージ
+
+C 言語での使用例:
+
+[source,C]
+----
+weechat_printf_date (NULL, time (NULL) - 120, "Hello, 2 minutes ago");
+----
+
+[NOTE]
+スクリプト API ではこの関数を利用できません。
+
+==== weechat_printf_tags
+
+タグを指定してバッファにメッセージを表示。
+
+プロトタイプ:
+
+[source,C]
+----
+void weechat_printf_tags (struct t_gui_buffer *buffer, const char *tags,
+ const char *message, ...);
+----
+
+引数:
+
+* 'buffer': バッファへのポインタ、NULL の場合、メッセージは WeeChat バッファに表示
+* 'tags': タグのコンマ区切りリスト
+* 'message': 表示するメッセージ
+
+C 言語での使用例:
+
+[source,C]
+----
+weechat_printf_tags (NULL, "notify_message",
+ "Message with a tag 'notify_message'");
+----
+
+[NOTE]
+スクリプト API ではこの関数を利用できません。
+
+==== weechat_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': タグのコンマ区切りリスト
+* 'message': 表示するメッセージ
+
+通常使用するタグ (一部抜粋したリスト):
+
+[width="70%",cols="1m,4",options="header"]
+|===
+| タグ | 説明
+| no_filter | フィルタできない行
+| no_highlight | ハイライトできない行
+| no_log | ログファイルに書き込まれない行
+| log0 ... log9 | 行に対するログレベル (`/help logger` を参照)
+| notify_none | この行を含むバッファはホットリストに追加されない
+| notify_message | この行を含むバッファは "message" レベルでホットリストに追加される
+| notify_private | この行を含むバッファは "private" レベルでホットリストに追加される
+| notify_highlight | この行を含むバッファは "highlight" レベルでホットリストに追加される
+| nick_xxx | ニックネーム "xxx" からのメッセージ
+| prefix_nick_ccc | プレフィックスを色 "ccc" のニックネームにする
+| irc_xxx | IRC メッセージ "xxx" (コマンドまたは 3 桁の番号)
+| irc_numeric | IRC 番号メッセージ
+| irc_error | IRC からのエラー
+| irc_action | あるニックネームからのアクション (`/me` コマンド)
+| irc_ctcp | CTCP メッセージ
+| irc_ctcp_reply | CTCP メッセージに対する返信
+| irc_smart_filter | "smart filter" でフィルタリング可能な IRC メッセージ
+| away_info | 離席状態のメッセージ
+|===
+
+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]
+----
+# prototype
+weechat.prnt_date_tags(buffer, date, tags, message)
+
+# example
+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" (Python の場合は "prnt_date_tags") と綴ります。
+
+==== weechat_printf_y
+
+自由内容のバッファのある行にメッセージを表示
+
+プロトタイプ:
+
+[source,C]
+----
+void weechat_printf_y (struct t_gui_buffer *buffer, int y,
+ const char *message, ...);
+----
+
+引数:
+
+* 'buffer': バッファへのポインタ
+* 'y': 行番号 (1 行目は 0)
+* 'message': 表示するメッセージ
+
+C 言語での使用例:
+
+[source,C]
+----
+weechat_printf_y (buffer, 2, "My message on third line");
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+weechat.prnt_y(buffer, y, message)
+
+# example
+weechat.prnt_y("", 2, "My message on third line")
+----
+
+[NOTE]
+この関数をスクリプトの中で実行するには "print_y" (Python の場合は "prnt_y") と綴ります。
+
+==== weechat_log_printf
+
+WeeChat ログファイル (weechat.log) にメッセージを書き込む。
+
+プロトタイプ:
+
+[source,C]
+----
+void weechat_log_printf (const char *message, ...);
+----
+
+引数:
+
+* 'message': 書き込むメッセージ
+
+C 言語での使用例:
+
+[source,C]
+----
+weechat_log_printf ("My message in log file");
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+weechat.log_print(message)
+
+# example
+weechat.log_print("My message in log file")
+----
+
+[NOTE]
+この関数をスクリプトの中で実行するには "log_print" と綴ります。
+
+[[hooks]]
+=== フック
+
+[[hook_priority]]
+[float]
+==== フックの優先度
+
+_WeeChat バージョン 0.3.4 以上で利用可。_
+
+一部のフックに対して優先度を設定することができます。フックリストは優先度の高い順にフックが並べられ、高い優先度を持つフックはそれよりも低い優先度を持つフックが実行される前に実行されます。これは実行順序が重要となる修飾子で便利です。
+
+優先度が指定できる引数に優先度を設定するには、必ず以下の構文を使ってください:
+"nnn|name" ここで "nnn" は優先度を示すゼロおよび正の整数で
+"name" は引数の名前です
+(優先度は自動的に文字列から削除され、フックの名前になります)。
+
+デフォルトの優先度は 1000 です。
+
+C 言語での使用例:
+
+[source,C]
+----
+/* hook modifier with priority = 2000 */
+weechat_hook_modifier ("2000|input_text_display", &modifier_cb, NULL);
+----
+
+以下のフック型に対して優先度を設定できます:
+command、command_run、signal、hsignal、config、completion、modifier、info、info_hashtable、infolist、hdata、focus。
+
+==== weechat_hook_command
+
+コマンドをフックする。
+
+プロトタイプ:
+
+[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)(void *data,
+ struct t_gui_buffer *buffer,
+ int argc,
+ char **argv,
+ char **argv_eol),
+ void *callback_data);
+----
+
+引数:
+
+* 'command': コマンド名
+ (優先度の設定が可能、<<hook_priority,優先度>>に関する注意を参照)
+* 'description': コマンドの説明 (`/help command` で表示されます)
+* 'args': コマンドの引数 (`/help command` で表示されます)
+* 'args_description': 引数の説明 (`/help command` で表示されます)
+* 'completion': コマンドの補完候補テンプレート: 各引数に対する補完候補の空白区切りリスト。1
+ つの引数に対して複数の補完候補を設定するには補完候補同士を "|"
+ で区切ってください。1 つのコマンドに対して複数のテンプレートを設定するにはテンプレート同士を
+ "||" で区切ってください。
+* 'callback': コマンドが使用された際に呼び出す関数、引数と戻り値:
+** 'void *data': ポインタ
+** 'struct t_gui_buffer *buffer': コマンドを実行するバッファ
+** 'int argc': コマンドに渡す引数の個数
+** 'char **argv': コマンドに渡す引数
+** 'char **argv_eol': コマンドに渡す引数
+ (最初の引数から各引数までを収めた文字列)
+** 戻り値:
+*** 'WEECHAT_RC_OK'
+*** 'WEECHAT_RC_ERROR'
+* 'callback_data': WeeChat がコールバックを呼び出す際にコールバックに渡すポインタ
+
+デフォルトの補完候補コードは:
+include::autogen/plugin_api/completions.txt[]
+
+特殊コード:
+
+* '%%command': コマンド 'command' と同じ補完候補テンプレートを使用
+* '%-': 補完の中止
+* '%*': 最後の補完候補を繰り返す
+
+戻り値:
+
+* 新しいフックへのポインタ、エラーが起きた場合は NULL
+
+C 言語での使用例:
+
+[source,C]
+----
+int
+my_command_cb (void *data, struct t_gui_buffer *buffer, int argc,
+ char **argv, char **argv_eol)
+{
+ /* ... */
+ return WEECHAT_RC_OK;
+}
+
+/* this example is inspired by command /filter */
+struct t_hook *my_command_hook =
+ weechat_hook_command (/* command name */
+ "myfilter",
+ /* description */
+ "description of myfilter",
+ /* args */
+ "[list] | [enable|disable|toggle [name]] | "
+ "[add name plugin.buffer tags regex] | "
+ "[del name|-all]",
+ /* args description */
+ "description of arguments...",
+ /* completion */
+ "list"
+ " || enable %(filters_names)"
+ " || disable %(filters_names)"
+ " || toggle %(filters_names)"
+ " || add %(filters_names) %(buffers_plugins_names)|*"
+ " || del %(filters_names)|-all",
+ /* callback */
+ &my_command_cb,
+ /* callback_data */
+ 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]
+----
+# prototype
+hook = weechat.hook_command(command, description, args, args_description,
+ completion, callback, callback_data)
+
+# example
+def my_command_cb(data, buffer, args):
+ # ...
+ return weechat.WEECHAT_RC_OK
+
+hook = weechat.hook_command("myfilter", "description of myfilter",
+ "[list] | [enable|disable|toggle [name]] | [add name plugin.buffer tags regex] | [del name|-all]",
+ "description of arguments...",
+ "list"
+ " || enable %(filters_names)"
+ " || disable %(filters_names)"
+ " || toggle %(filters_names)"
+ " || add %(filters_names) %(buffers_plugins_names)|*"
+ " || del %(filters_names)|-all",
+ "my_command_cb", "")
+----
+
+==== weechat_hook_command_run
+
+WeeChat がコマンドを実行する際にこれをフック。
+
+プロトタイプ:
+
+[source,C]
+----
+struct t_hook *weechat_hook_command_run (const char *command,
+ int (*callback)(void *data,
+ struct t_gui_buffer *buffer,
+ const char *command),
+ void *callback_data);
+----
+
+引数:
+
+* 'command': フックするコマンド、ワイルドカード "*" を最初や最後につけることも可能
+ (優先度の設定が可能、<<hook_priority,優先度>>に関する注意を参照)
+* 'callback': コマンドが実行される際に呼び出す関数、引数と戻り値:
+** 'void *data': ポインタ
+** 'struct t_gui_buffer *buffer': コマンドを実行するバッファ
+** 'const char *command': 実行するコマンド、引数付き
+** 戻り値:
+*** 'WEECHAT_RC_OK'
+*** 'WEECHAT_RC_OK_EAT'
+*** 'WEECHAT_RC_ERROR'
+* 'callback_data': WeeChat がコールバックを呼び出す際にコールバックに渡すポインタ
+
+[NOTE]
+コールバックは 'WEECHAT_RC_OK' または 'WEECHAT_RC_OK_EAT'
+(コールバックの後にコマンドを実行しない) を返すことができます。
+
+戻り値:
+
+* 新しいフックへのポインタ、エラーが起きた場合は NULL
+
+C 言語での使用例:
+
+[source,C]
+----
+int
+my_command_run_cb (void *data, struct t_gui_buffer *buffer,
+ const char *command)
+{
+ weechat_printf (NULL,
+ "You want to complete? I'm eating the completion ahah!");
+ return WEECHAT_RC_OK_EAT;
+}
+
+struct t_hook *my_command_run_hook =
+ weechat_hook_command_run ("/input complete*",
+ &my_command_run_cb, NULL);
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+hook = weechat.hook_command_run(command, callback, callback_data)
+
+# example
+def my_command_run_cb(data, buffer, command):
+ weechat.prnt("", "You want to complete? I'm eating the completion, ahah!")
+ return weechat.WEECHAT_RC_OK_EAT
+
+hook = weechat.hook_command_run("/input complete*", "my_command_run_cb", "")
+----
+
+==== weechat_hook_timer
+
+タイマをフックする。
+
+プロトタイプ:
+
+[source,C]
+----
+struct t_hook *weechat_hook_timer (long interval,
+ int align_second,
+ int max_calls,
+ int (*callback)(void *data,
+ int remaining_calls),
+ void *callback_data);
+----
+
+引数:
+
+* 'interval': 2 つの呼び出し間隔 (ミリ秒、1000 = 1 秒)
+* 'align_second': 秒の調整。例えば、現在時刻が 09:00、
+ interval = 60000 (60 秒)、align_second = 60
+ の場合、毎分 0 秒時にタイマを呼び出す
+* 'max_calls': タイマを呼び出す回数 (0 の場合、タイマを無限に呼び出す)
+* 'callback': 時間が来たら呼び出す関数、引数と戻り値:
+** 'void *data': ポインタ
+** 'int remaining_calls': 呼び出し残り回数 (タイマを無限に呼び出す場合は -1)
+** 戻り値:
+*** 'WEECHAT_RC_OK'
+*** 'WEECHAT_RC_ERROR'
+* 'callback_data': WeeChat がコールバックを呼び出す際にコールバックに渡すポインタ
+
+戻り値:
+
+* 新しいフックへのポインタ、エラーが起きた場合は NULL
+
+C 言語での使用例:
+
+[source,C]
+----
+int
+my_timer_cb (void *data, int remaining_calls)
+{
+ /* ... */
+ return WEECHAT_RC_OK;
+}
+
+/* timer called each 20 seconds */
+struct t_hook *my_timer_hook =
+ weechat_hook_timer (20 * 1000, 0, 0, &my_timer_cb, NULL);
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+hook = weechat.hook_timer(interval, align_second, max_calls, callback, callback_data)
+
+# example
+def my_timer_cb(data, remaining_calls):
+ # ...
+ return weechat.WEECHAT_RC_OK
+
+# timer called each 20 seconds
+hook = weechat.hook_timer(20 * 1000, 0, 0, "my_timer_cb", "")
+----
+
+==== weechat_hook_fd
+
+ファイルディスクリプタ (ファイルやソケット) をフック。
+
+プロトタイプ:
+
+[source,C]
+----
+struct t_hook *weechat_hook_fd (int fd,
+ int flag_read,
+ int flag_write,
+ int flag_exception,
+ int (*callback)(void *data,
+ int fd),
+ void *callback_data);
+----
+
+引数:
+
+* 'fd': ファイルディスクリプタ
+* 'flag_read': 1 = 読み込みイベントをキャッチ、0 = 無視
+* 'flag_write': 1 = 書き込みイベントをキャッチ、0 = 無視
+* 'flag_exception': 1 = 例外イベントをキャッチ、0 = 無視
+* 'callback': ファイル (またはソケット) に対してキャッチしたいイベントが発生した場合に実行する関数、
+ 引数と戻り値:
+** 'void *data': ポインタ
+** 'int fd': ファイルディスクリプタ
+** 戻り値:
+*** 'WEECHAT_RC_OK'
+*** 'WEECHAT_RC_ERROR'
+* 'callback_data': WeeChat がコールバックを呼び出す際にコールバックに渡すポインタ
+
+戻り値:
+
+* 新しいフックへのポインタ、エラーが起きた場合は NULL
+
+C 言語での使用例:
+
+[source,C]
+----
+int
+my_fd_cb (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);
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+hook = weechat.hook_fd(fd, flag_read, flag_write, flag_exception, callback, callback_data)
+
+# example
+def my_fd_cb(data, fd):
+ # ...
+ return weechat.WEECHAT_RC_OK
+
+sock = ...
+hook = weechat.hook_fd(sock, 1, 0, 0, "my_fd_cb", "")
+----
+
+==== weechat_hook_process
+
+プロセスをフックして (フォークして実行)、出力を受け取る。
+
+[NOTE]
+バージョン 0.3.9.2
+以降、コマンドを実行するためにシェルを使わないようになりました。WeeChat
+が自動的にコマンドと引数を分割します (シェルがやっているように)。 +
+(コマンドのクォートに従った)
+分割に失敗する場合、またはシェルを使いたい場合は、ハッシュテーブル
+'options' に引数を入れて <<_weechat_hook_process_hashtable,weechat_hook_process_hashtable>>
+関数を使ってください _(WeeChat バージョン 0.4.0 以上で利用可)_ 。
+
+プロトタイプ:
+
+[source,C]
+----
+struct t_hook *weechat_hook_process (const char *command,
+ int timeout,
+ int (*callback)(void *data,
+ const char *command,
+ int return_code,
+ const char *out,
+ const char *err),
+ void *callback_data);
+----
+
+
+引数:
+
+* 'command': 子プロセスで実行するコマンドまたは
+ URL _(WeeChat バージョン 0.3.7 以上で利用可)_ (以下を参照)
+* 'timeout': コマンドのタイムアウト (ミリ秒):
+ このタイムアウトを過ぎたら、子プロセスを kill します (タイムアウトさせない場合は 0)
+* 'callback':
+ 子プロセスからのデータが利用可能になるか、子プロセスが終了したら呼び出す関数、引数と戻り値:
+** 'void *data': ポインタ
+** 'const char *command': 子プロセスが実行するコマンド
+** 'int return_code': リターンコード:
+*** '>= 0': コマンドを実行した子プロセスのまたは URL に対するリターンコード。URL の場合取取り得る値は:
+**** '0': 転送に成功
+**** '1': 無効な URL
+**** '2': 転送エラー
+**** '3': メモリ不足
+**** '4': ファイルに関するエラー
+*** '< 0': 'WEECHAT_HOOK_PROCESS_RUNNING' (データは利用可能だが子プロセスは終了していない)
+ または 'WEECHAT_HOOK_PROCESS_ERROR' (コマンドの実行中にエラー)
+** 'out': コマンドの標準出力 (stdout)
+** 'err': コマンドの標準エラー出力 (stderr)
+** 戻り値:
+*** 'WEECHAT_RC_OK'
+*** 'WEECHAT_RC_ERROR'
+* 'callback_data': WeeChat がコールバックを呼び出す際にコールバックに渡すポインタ
+
+戻り値:
+
+* 新しいフックへのポインタ、エラーが起きた場合は NULL
+
+コマンドが終了するか、タイムアウトを過ぎた場合、WeeChat は自動的にフックを解除します
+(プロセスが実行中であればプロセスを kill します)。
+
+コマンドを "url:http://www.example.com" のフォーマットに従う URL にすることで、URL
+の内容がダウンロードされます _(WeeChat バージョン 0.3.7 以上で利用可)_ 。<<_weechat_hook_process_hashtable,weechat_hook_process_hashtable>>
+関数を使えば URL に対してオプションを与えることもできます。
+
+[TIP]
+WeeChat に関する情報 (例えば現在の安定版、最新の git コミット、...)
+が欲しい場合、http://weechat.org/dev/info に書かれている URL を使ってください
+
+[NOTE]
+コールバックにデータを送信するバッファのサイズは 64KB (バッファは 2
+つあります: 標準出力用と、標準エラー出力用)
+です。子プロセスからの出力 (標準出力または標準エラー出力) が 64KB
+よりも大きくなった場合は、コールバックを 1 回以上呼び出します。
+
+[IMPORTANT]
+コールバックを 1
+回より多く呼び出すことが皆無だとしても、コールバックを複数回呼び出しても安全なようにコードを書いてください:
+必ず複数回送られたデータを連結し、データを使うのは戻り値が正またはゼロの時だけにしてください。
+
+C 言語での使用例:
+
+[source,C]
+----
+int
+my_process_cb (void *data, const char *command, int return_code,
+ const char *out, const char *err)
+{
+ if (return_code == WEECHAT_HOOK_PROCESS_ERROR)
+ {
+ weechat_printf (NULL, "Error with command '%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);
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+hook = weechat.hook_process(command, timeout, callback, callback_data)
+
+# example
+def my_process_cb(data, command, return_code, out, err):
+ if return_code == weechat.WEECHAT_HOOK_PROCESS_ERROR:
+ weechat.prnt("", "Error with command '%s'" % command)
+ return weechat.WEECHAT_RC_OK
+ if return_code >= 0:
+ weechat.prnt("", "return_code = %d" % return_code)
+ if out != "":
+ weechat.prnt("", "stdout: %s" % out)
+ if err != "":
+ weechat.prnt("", "stderr: %s" % err)
+ return weechat.WEECHAT_RC_OK
+
+hook = weechat.hook_process("ls", 5000, "my_process_cb", "")
+----
+
+==== weechat_hook_process_hashtable
+
+_WeeChat バージョン 0.3.7 以上で利用可。_
+
+ハッシュテーブルに収めたオプションを使いプロセスをフックする
+(フォークして実行)、出力を受け取る。
+
+プロトタイプ:
+
+[source,C]
+----
+struct t_hook *weechat_hook_process_hashtable (const char *command,
+ struct t_hashtable *options,
+ int timeout,
+ int (*callback)(void *data,
+ const char *command,
+ int return_code,
+ const char *out,
+ const char *err),
+ void *callback_data);
+----
+
+引数は以下の追加引数を除いて
+<<_weechat_hook_process,weechat_hook_process>> 関数と同じです:
+
+* 'options': 実行するコマンドのオプション;
+ ハッシュテーブルは関数の中で複製されるため、この関数を呼び出した後にハッシュテーブルを安全に開放できます。
+
+一般的なコマンド (最初に "url:" が付かないコマンド)
+では、以下のオプションを使うことができます:
+
+[width="100%",cols="^1,1,3",options="header"]
+|===
+| オプション | 値 | 説明
+
+| argN (N ≥ 1) +
+ _(WeeChat バージョン 0.4.0 以上で利用可)_ |
+ 任意の文字列 |
+ コマンドの引数;
+ このオプションを使って引数を渡さない場合、シェルと同じように引数を自動的に分割します
+ ('command' 引数からコマンド引数を読み込みます)
+
+| stdin +
+ _(WeeChat バージョン 0.4.3 以上で利用可)_ |
+ (非使用) |
+ データを書き込むためのパイプを子プロセスの標準入力 (stdin)
+ に作成します (関数 <<_weechat_hook_set,weechat_hook_set>> を参照)
+|===
+
+"url:..." 型のコマンドでは、以下のコマンドを使うことができます
+(それぞれのオプションについては `man curl_easy_setopt` を参照):
+
+include::autogen/plugin_api/url_options.txt[]
+
+[NOTE]
+^(1)^ 定数が利用可能な場合、定数は必ずオプションの値に含めてください。"mask"
+型のオプションでは、以下のフォーマットに従ってください: "value1+value2+value3"。
+
+URL では、入力/出力ファイル用に 2 つのオプション (文字列) を使うことができます:
+
+* 'file_in': 読み込んで URL に送信するファイル (ファイルを送信)
+* 'file_out': ダウンロードした URL/ファイルをこのファイルに書き込む
+ (標準出力を使わない)
+
+戻り値:
+
+* 新しいフックへのポインタ、エラーが起きた場合は NULL
+
+C 言語での使用例:
+
+[source,C]
+----
+int
+my_process_cb (void *data, const char *command, int return_code,
+ const char *out, const char *err)
+{
+ if (return_code == WEECHAT_HOOK_PROCESS_ERROR)
+ {
+ weechat_printf (NULL, "Error with command '%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;
+}
+
+/* example 1: download URL */
+struct t_hashtable *options = weechat_hashtable_new (8,
+ WEECHAT_HASHTABLE_STRING,
+ WEECHAT_HASHTABLE_STRING,
+ NULL,
+ NULL);
+if (options)
+{
+ weechat_hashtable_set (options, "file_out", "/tmp/weechat.org.html");
+ struct t_hook *my_process_hook = weechat_hook_process_hashtable ("url:http://www.weechat.org/",
+ options,
+ 20000,
+ &my_process_cb, NULL);
+ weechat_hashtable_free (options);
+}
+
+/* example 2: execute a notify program with a message from someone */
+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); /* untrusted argument */
+ struct t_hook *my_process_hook = weechat_hook_process_hashtable ("my-notify-command",
+ options_cmd1,
+ 20000,
+ &my_process_cb, NULL);
+ weechat_hashtable_free (options_cmd1);
+}
+
+/* example 3: call shell to execute a command (command must be SAFE) */
+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);
+ weechat_hashtable_free (options_cmd2);
+}
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+hook = weechat.hook_process_hashtable(command, options, timeout, callback, callback_data)
+
+# example
+def my_process_cb(data, command, return_code, out, err):
+ if return_code == weechat.WEECHAT_HOOK_PROCESS_ERROR:
+ weechat.prnt("", "Error with command '%s'" % command)
+ return weechat.WEECHAT_RC_OK
+ if return_code >= 0:
+ weechat.prnt("", "return_code = %d" % return_code)
+ if out != "":
+ weechat.prnt("", "stdout: %s" % out)
+ if err != "":
+ weechat.prnt("", "stderr: %s" % err)
+ return weechat.WEECHAT_RC_OK
+
+# example 1: download URL
+hook1 = weechat.hook_process_hashtable("url:http://www.weechat.org/",
+ { "file_out": "/tmp/weechat.org.html" },
+ 20000, "my_process_cb", "")
+
+# example 2: execute a notify program with a message from someone
+hook2 = weechat.hook_process_hashtable("my-notify-command",
+ { "arg1": "-from",
+ "arg2": nick,
+ "arg3": "-msg",
+ "arg4": message }, # untrusted argument
+ 20000, "my_process_cb", "")
+
+# example 3: call shell to execute a command (command must be SAFE)
+hook3 = weechat.hook_process_hashtable("sh",
+ { "arg1": "-c",
+ "arg2": "ls -l /tmp | grep something" },
+ 20000, "my_process_cb", "")
+----
+
+==== weechat_hook_connect
+
+接続をフックする (リモートホストへのバックグラウンド接続)。
+
+プロトタイプ:
+
+[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)(void *data,
+ int status,
+ int gnutls_rc,
+ int sock,
+ const char *error,
+ const char *ip_address),
+ void *callback_data);
+----
+
+引数:
+
+* 'proxy': 接続に使用するプロキシの名前
+ (任意、プロキシを使わない場合は NULL)
+* 'address': 接続先のドメイン名または IP アドレス
+* 'port': ポート番号
+* 'ipv6': (IPv4 フォールバックを有効にして) IPv6 を使う場合は 1、IPv4 のみを使う場合は 0
+* 'retry': 再試行回数、IPv6 ホストに接続したもののクライアントの受け入れに失敗した際に
+ IPv4 ホストへフォールバックする際に使う
+* 'gnutls_sess': GnuTLS セッション (任意)
+* 'gnutls_cb': GnuTLS コールバック (任意)
+* 'gnutls_dhkey_size': Diffie-Hellman
+ 鍵交換の際に使う鍵のサイズ (GnuTLS)
+* 'gnutls_priorities': gnutls のプロパティ (構文は gnutls マニュアルの
+ 'gnutls_priority_init' 関数を参照)、基本的な値を以下に示す:
+** 'PERFORMANCE'
+** 'NORMAL' (デフォルト)
+** 'SECURE128'
+** 'SECURE256'
+** 'EXPORT'
+** 'NONE'
+* 'local_hostname': 接続に使うローカルのホスト名前 (任意)
+* 'callback':
+ 接続に成功および失敗した際に呼び出す関数、引数と戻り値:
+** 'void *data': ポインタ
+** 'int status': 接続状態:
+*** 'WEECHAT_HOOK_CONNECT_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 初期化エラー
+*** '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_data': WeeChat がコールバックを呼び出す際にコールバックに渡すポインタ
+
+戻り値:
+
+* 新しいフックへのポインタ、エラーが起きた場合は NULL
+
+C 言語での使用例:
+
+[source,C]
+----
+int
+my_connect_cb (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);
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+hook = weechat.hook_connect(proxy, address, port, ipv6, retry, local_hostname,
+ callback, callback_data)
+
+# example
+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", "")
+----
+
+==== weechat_hook_print
+
+メッセージの表示をフックする。
+
+プロトタイプ:
+
+[source,C]
+----
+struct t_hook *weechat_hook_print (struct t_gui_buffer *buffer,
+ const char *tags,
+ const char *message,
+ int strip_colors,
+ int (*callback)(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),
+ void *callback_data);
+----
+
+引数:
+
+* 'buffer': バッファへのポインタ、NULL の場合、任意のバッファからのメッセージをキャッチする
+* 'tags': このタグが付けられたメッセージだけをキャッチする (任意):
+** WeeChat バージョン 0.4.3 以上の場合: メッセージに付けられたタグのコンマ区切りリスト (論理 "or");
+ 複数の条件を論理 "and" で組み合わせる場合は区切りに "+" を使ってください;
+ タグは最初と最後に "*" をつけて多くのタグにマッチさせることができます
+** WeeChat バージョン 0.4.2 以下の場合: 論理 "and"
+ で組み合わせたタグのコンマ区切りリスト
+* 'message': この文字列を含むメッセージだけをキャッチする
+ (任意、大文字小文字を区別しない)
+* 'strip_colors': 1
+ の場合、表示されるメッセージから色を削除する、コールバックを呼ぶ前
+* 'callback':
+ メッセージが表示される際に呼び出すコールバック、引数と戻り値:
+** '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_data': WeeChat がコールバックを呼び出す際にコールバックに渡すポインタ
+
+戻り値:
+
+* 新しいフックへのポインタ、エラーが起きた場合は NULL
+
+C 言語での使用例:
+
+[source,C]
+----
+int
+my_print_cb (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;
+}
+
+/* catch all messages, on all buffers, without color */
+struct t_hook *my_print_hook =
+ weechat_hook_print (NULL, NULL, NULL, 1, &my_print_cb, NULL);
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+hook = weechat.hook_print(buffer, tags, message, strip_colors, callback, callback_data)
+
+# example
+def my_print_cb(data, buffer, date, tags, displayed, highlight, prefix, message):
+ # ...
+ return weechat.WEECHAT_RC_OK
+
+# catch all messages, on all buffers, without color
+hook = weechat.hook_print("", "", "", 1, "my_print_cb", "")
+----
+
+==== weechat_hook_signal
+
+シグナルをフックする。
+
+プロトタイプ:
+
+[source,C]
+----
+struct t_hook *weechat_hook_signal (const char *signal,
+ int (*callback)(void *data,
+ const char *signal,
+ const char *type_data,
+ void *signal_data),
+ void *callback_data);
+----
+
+引数:
+
+* 'signal': キャッチするシグナル、最初と最後に "*" を使えます
+ (優先度の設定が可能、<<hook_priority,優先度>>に関する注意を参照)
+ (以下の表を参照)
+* 'callback':
+ シグナルを受信した際に呼び出す関数、引数と戻り値:
+** '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_data': WeeChat がコールバックを呼び出す際にコールバックに渡すポインタ
+
+戻り値:
+
+* 新しいフックへのポインタ、エラーが起きた場合は NULL
+
+WeeChat とプラグインが送信するシグナルのリスト:
+
+[width="100%",cols="^1,^3,4,5",options="header"]
+|===
+| プラグイン | シグナル | 引数 | 説明
+
+| aspell | aspell_suggest +
+ _(WeeChat バージョン 0.4.0 以上で利用可)_ |
+ Pointer: バッファ |
+ スペルの間違っている単語に対する新しい修正候補
+
+| guile | guile_script_loaded +
+ _(WeeChat バージョン 0.3.9 以上で利用可)_ |
+ String: スクリプトへのパス |
+ Scheme スクリプトを読み込み
+
+| guile | guile_script_unloaded +
+ _(WeeChat バージョン 0.3.9 以上で利用可)_ |
+ String: スクリプトへのパス |
+ Scheme スクリプトを再読み込み
+
+| guile | guile_script_installed +
+ _(WeeChat バージョン 0.3.9 以上で利用可)_ |
+ String: インストールされたスクリプトへのパスのコンマ区切りリスト |
+ Scheme スクリプトをインストール
+
+| guile | guile_script_removed +
+ _(WeeChat バージョン 0.3.9 以上で利用可)_ |
+ String: 削除されたスクリプトへのパスのコンマ区切りリスト |
+ Scheme スクリプトを削除
+
+| irc | xxx,irc_in_yyy ^(1)^ |
+ String: メッセージ |
+ サーバから IRC メッセージを受信 (メッセージを*無視しない* 場合のみ irc
+ プラグインがメッセージを処理する前に、シグナルが送信される)
+
+| irc | xxx,irc_in2_yyy ^(1)^ |
+ String: メッセージ |
+ サーバから IRC メッセージを受信 (メッセージを*無視しない* 場合のみ irc
+ プラグインがメッセージを処理した後に、シグナルが送信される)
+
+| irc | xxx,irc_raw_in_yyy ^(1)^ +
+ _(WeeChat バージョン 0.3.2 以上で利用可)_ |
+ String: メッセージ |
+ サーバから IRC メッセージを受信 (メッセージを無視する場合でも irc
+ プラグインがメッセージを処理する前に、シグナルが送信される)
+
+| irc | xxx,irc_raw_in2_yyy ^(1)^ +
+ _(WeeChat バージョン 0.3.2 以上で利用可)_ |
+ String: メッセージ |
+ サーバから IRC メッセージを受信 (メッセージを無視する場合でも irc
+ プラグインがメッセージを処理した後に、シグナルが送信される)
+
+| irc | xxx,irc_out1_yyy ^(1)^ +
+ _(WeeChat バージョン 0.3.7 以上で利用可)_ |
+ String: メッセージ |
+ サーバに IRC メッセージを送信 (メッセージを 512 バイトに合わせて自動分割する前)
+
+| irc | xxx,irc_out_yyy ^(1)^ |
+ String: メッセージ |
+ サーバに IRC メッセージを送信 (メッセージを 512 バイトに合わせて自動分割した後)
+
+| irc | xxx,irc_outtags_yyy ^(1)^ +
+ _(WeeChat バージョン 0.3.4 以上で利用可)_ |
+ String: タグ + ";" + メッセージ |
+ タグ + サーバに送信する IRC メッセージ
+
+| irc | irc_ctcp |
+ String: メッセージ |
+ CTCP を受信
+
+| irc | irc_dcc |
+ String: メッセージ |
+ 新しい DCC
+
+| irc | irc_pv |
+ String: メッセージ |
+ プライベートメッセージを受信
+
+| irc | irc_channel_opened |
+ Pointer: バッファ |
+ チャンネルを開いた
+
+| irc | irc_pv_opened |
+ Pointer: バッファ |
+ プライベートメッセージを開いた
+
+| irc | irc_server_opened +
+ _(WeeChat バージョン 0.3.7 以上で利用可)_ |
+ Pointer: バッファ |
+ サーババッファを開いた
+
+| irc | irc_server_connecting |
+ String: サーバ名 |
+ サーバに接続中
+
+| irc | irc_server_connected |
+ String: サーバ名 |
+ サーバとの接続を確立
+
+| irc | irc_server_disconnected |
+ String: サーバ名 |
+ サーバから切断された
+
+| irc | irc_ignore_removing |
+ Pointer: 無視 |
+ 無視条件を削除中
+
+| irc | irc_ignore_removed |
+ - |
+ 無視条件を削除した
+
+| irc | irc_notify_join +
+ _(WeeChat バージョン 0.3.8 以上で利用可)_ |
+ String: サーバ名 + "," + ニックネーム |
+ 通知リストに入っているニックネームがサーバに参加
+
+| irc | irc_notify_quit +
+ _(WeeChat バージョン 0.3.8 以上で利用可)_ |
+ String: サーバ名 + "," + ニックネーム |
+ 通知リストに入っているニックネームがサーバから切断
+
+| irc | irc_notify_away +
+ _(WeeChat バージョン 0.3.8 以上で利用可)_ |
+ String: サーバ名 + "," + ニックネーム + "," + 離席メッセージ |
+ 通知リストに入っているニックネームが離席状態に
+
+| irc | irc_notify_still_away +
+ _(WeeChat バージョン 0.3.8 以上で利用可)_ |
+ String: サーバ名 + "," + ニックネーム + "," + 離席メッセージ |
+ 通知リストに入っているニックネームはまだ離席状態 (離席メッセージを変更)
+
+| irc | irc_notify_back +
+ _(WeeChat バージョン 0.3.8 以上で利用可)_ |
+ String: サーバ名 + "," + ニックネーム |
+ 通知リストに入っているニックネームが着席状態に (離席状態を解除)
+
+| logger | logger_start |
+ Pointer: バッファ |
+ バッファのログ保存を開始
+
+| logger | logger_stop |
+ Pointer: バッファ |
+ バッファのログ保存を中止
+
+| logger | logger_backlog |
+ Pointer: バッファ |
+ バッファのバックログを表示
+
+| lua | lua_script_loaded +
+ _(WeeChat バージョン 0.3.9 以上で利用可)_ |
+ String: スクリプトへのパス |
+ Lua スクリプトを読み込み
+
+| lua | lua_script_unloaded +
+ _(WeeChat バージョン 0.3.9 以上で利用可)_ |
+ String: スクリプトへのパス |
+ Lua スクリプトを再読み込み
+
+| lua | lua_script_installed +
+ _(WeeChat バージョン 0.3.9 以上で利用可)_ |
+ String: インストールされたスクリプトへのパスのコンマ区切りリスト |
+ Lua スクリプトをインストール
+
+| lua | lua_script_removed +
+ _(WeeChat バージョン 0.3.9 以上で利用可)_ |
+ String: 削除されたスクリプトへのパスのコンマ区切りリスト |
+ Lua スクリプトを削除
+
+| perl | perl_script_loaded +
+ _(WeeChat バージョン 0.3.9 以上で利用可)_ |
+ String: スクリプトへのパス |
+ Perl スクリプトを読み込み
+
+| perl | perl_script_unloaded +
+ _(WeeChat バージョン 0.3.9 以上で利用可)_ |
+ String: スクリプトへのパス |
+ Perl スクリプトを再読み込み
+
+| perl | perl_script_installed +
+ _(WeeChat バージョン 0.3.9 以上で利用可)_ |
+ String: インストールされたスクリプトへのパスのコンマ区切りリスト |
+ Perl スクリプトをインストール
+
+| perl | perl_script_removed +
+ _(WeeChat バージョン 0.3.9 以上で利用可)_ |
+ String: 削除されたスクリプトへのパスのコンマ区切りリスト |
+ Perl スクリプトを削除
+
+| python | python_script_loaded +
+ _(WeeChat バージョン 0.3.9 以上で利用可)_ |
+ String: スクリプトへのパス |
+ Python スクリプトを読み込み
+
+| python | python_script_unloaded +
+ _(WeeChat バージョン 0.3.9 以上で利用可)_ |
+ String: スクリプトへのパス |
+ Python スクリプトを再読み込み
+
+| python | python_script_installed +
+ _(WeeChat バージョン 0.3.9 以上で利用可)_ |
+ String: インストールされたスクリプトへのパスのコンマ区切りリスト |
+ Python スクリプトをインストール
+
+| python | python_script_removed +
+ _(WeeChat バージョン 0.3.9 以上で利用可)_ |
+ String: 削除されたスクリプトへのパスのコンマ区切りリスト |
+ Python スクリプトを削除
+
+| ruby | ruby_script_loaded +
+ _(WeeChat バージョン 0.3.9 以上で利用可)_ |
+ String: スクリプトへのパス |
+ Ruby スクリプトを読み込み
+
+| ruby | ruby_script_unloaded +
+ _(WeeChat バージョン 0.3.9 以上で利用可)_ |
+ String: スクリプトへのパス |
+ Ruby スクリプトを再読み込み
+
+| ruby | ruby_script_installed +
+ _(WeeChat バージョン 0.3.9 以上で利用可)_ |
+ String: インストールされたスクリプトへのパスのコンマ区切りリスト |
+ Ruby スクリプトをインストール
+
+| ruby | ruby_script_removed +
+ _(WeeChat バージョン 0.3.9 以上で利用可)_ |
+ String: 削除されたスクリプトへのパスのコンマ区切りリスト |
+ Ruby スクリプトを削除
+
+| tcl | tcl_script_loaded +
+ _(WeeChat バージョン 0.3.9 以上で利用可)_ |
+ String: スクリプトへのパス |
+ Tcl スクリプトを読み込み
+
+| tcl | tcl_script_unloaded +
+ _(WeeChat バージョン 0.3.9 以上で利用可)_ |
+ String: スクリプトへのパス |
+ Tcl スクリプトを再読み込み
+
+| tcl | tcl_script_installed +
+ _(WeeChat バージョン 0.3.9 以上で利用可)_ |
+ String: インストールされたスクリプトへのパスのコンマ区切りリスト |
+ Tcl スクリプトをインストール
+
+| tcl | tcl_script_removed +
+ _(WeeChat バージョン 0.3.9 以上で利用可)_ |
+ String: 削除されたスクリプトへのパスのコンマ区切りリスト |
+ Tcl スクリプトを削除
+
+| weechat | buffer_opened |
+ Pointer: バッファ |
+ バッファを開いた
+
+| weechat | buffer_closing |
+ Pointer: バッファ |
+ バッファを閉じている
+
+| weechat | buffer_closed |
+ Pointer: バッファ |
+ バッファを閉じた
+
+| weechat | buffer_cleared |
+ Pointer: バッファ |
+ バッファをクリア
+
+| weechat | buffer_line_added +
+ _(WeeChat バージョン 0.3.7 以上で利用可)_ |
+ Pointer: 行 |
+ バッファに行を追加
+
+| weechat | buffer_lines_hidden |
+ Pointer: バッファ |
+ バッファから行を隠す
+
+| weechat | buffer_localvar_added |
+ Pointer: バッファ |
+ ローカル変数を追加
+
+| weechat | buffer_localvar_changed |
+ Pointer: バッファ |
+ ローカル変数を変更
+
+| weechat | buffer_localvar_removed |
+ Pointer: バッファ |
+ ローカル変数を削除
+
+| weechat | buffer_merged |
+ Pointer: バッファ |
+ バッファをマージ
+
+| weechat | buffer_unmerged |
+ Pointer: バッファ |
+ バッファのマージを解除
+
+| weechat | buffer_moved |
+ Pointer: バッファ |
+ バッファを移動
+
+| weechat | buffer_renamed |
+ Pointer: バッファ |
+ バッファの名前を変更
+
+| weechat | buffer_switch |
+ Pointer: バッファ |
+ バッファを切り替え
+
+| weechat | buffer_title_changed |
+ Pointer: バッファ |
+ バッファのタイトルを変更
+
+| weechat | buffer_type_changed |
+ Pointer: バッファ |
+ バッファのタイプを変更
+
+| weechat | buffer_zoomed +
+ _(WeeChat バージョン 0.4.3 以上で利用可)_ |
+ Pointer: バッファ |
+ マージされたバッファをズーム
+
+| weechat | buffer_unzoomed +
+ _(WeeChat バージョン 0.4.3 以上で利用可)_ |
+ Pointer: バッファ |
+ マージされたバッファをアンズーム
+
+| weechat | day_changed +
+ _(WeeChat バージョン 0.3.2 以上で利用可)_ |
+ String: 新しい日付、フォーマット: "2010-01-31" |
+ システムの日付が変更された
+
+| weechat | debug_dump |
+ String: プラグイン名 |
+ リクエストをダンプ
+
+| weechat | debug_libs |
+ - |
+ 使用中の外部ライブラリを表示
+
+| weechat | filter_added |
+ Pointer: フィルタ |
+ フィルタを追加
+
+| weechat | filter_removing |
+ Pointer: フィルタ |
+ フィルタを削除中
+
+| weechat | filter_removed |
+ - |
+ フィルタを削除
+
+| weechat | filters_enabled |
+ - |
+ フィルタを有効化
+
+| weechat | filters_disabled |
+ - |
+ フィルタを無効化
+
+| weechat | hotlist_changed |
+ - |
+ ホットリストが変更された
+
+| weechat | input_paste_pending |
+ - |
+ 貼り付けを保留中
+
+| weechat | input_search |
+ Pointer: バッファ |
+ バッファテキストの検索
+
+| weechat | input_text_changed |
+ Pointer: バッファ |
+ 入力テキストが変更された
+
+| weechat | input_text_cursor_moved |
+ Pointer: バッファ |
+ 入力テキストカーソルを移動
+
+| weechat | key_bind |
+ String: キー |
+ キー割り当てを追加
+
+| weechat | key_unbind |
+ String: キー |
+ キー割り当てを削除
+
+| weechat | key_pressed |
+ String: 押されたキー |
+ キーが押された
+
+| weechat | nicklist_group_added +
+ _(WeeChat バージョン 0.3.2 以上で利用可)_ |
+ String: バッファポインタ + "," + グループ名 |
+ ニックネームリストにグループを追加
+
+| weechat | nicklist_group_changed +
+ _(WeeChat バージョン 0.3.4 以上で利用可)_ |
+ String: バッファポインタ + "," + グループ名 |
+ ニックネームリストのグループを変更
+
+| weechat | nicklist_group_removing +
+ _(WeeChat バージョン 0.4.1 以上で利用可)_ |
+ String: バッファポインタ + "," + グループ名 |
+ ニックネームリストからグループを削除中
+
+| weechat | nicklist_group_removed +
+ _(WeeChat バージョン 0.3.2 以上で利用可)_ |
+ String: バッファポインタ + "," + グループ名 |
+ ニックネームリストからグループを削除
+
+| weechat | nicklist_nick_added +
+ _(WeeChat バージョン 0.3.2 以上で利用可)_ |
+ String: バッファポインタ + "," + ニックネーム |
+ ニックネームリストにニックネームを追加
+
+| weechat | nicklist_nick_changed +
+ _(WeeChat バージョン 0.3.4 以上で利用可)_ |
+ String: バッファポインタ + "," + ニックネーム |
+ ニックネームリストのニックネームを変更
+
+| weechat | nicklist_nick_removing +
+ _(WeeChat バージョン 0.4.1 以上で利用可)_ |
+ String: バッファポインタ + "," + ニックネーム |
+ ニックネームリストからニックネームを削除中
+
+| weechat | nicklist_nick_removed +
+ _(WeeChat バージョン 0.3.2 以上で利用可)_ |
+ String: バッファポインタ + "," + ニックネーム |
+ ニックネームリストからニックネームを削除
+
+| weechat | partial_completion |
+ - |
+ 部分補完を実行
+
+| weechat | plugin_loaded +
+ _(WeeChat バージョン 0.3.9 以上で利用可)_ |
+ String: 読み込んだプラグインへのパス |
+ プラグインを読み込み
+
+| weechat | plugin_unloaded +
+ _(WeeChat バージョン 0.3.9 以上で利用可)_ |
+ String: 再読み込みしたプラグインの名前 (例: "irc") |
+ プラグインを再読み込み
+
+| weechat | quit |
+ String: /quit の引数 |
+ ユーザがコマンド `/quit` を実行
+
+| weechat | upgrade |
+ String: /upgrade に "-quit" 引数が与えられた場合は "quit"、それ以外は NULL |
+ ユーザがコマンド `/upgrade` を実行
+
+| weechat | upgrade_ended +
+ _(WeeChat バージョン 0.3.4 以上で利用可)_ |
+ - |
+ アップグレード作業 (コマンド `/upgrade`) が終了
+
+| weechat | weechat_highlight |
+ String: プレフィックス付のメッセージ |
+ メッセージがハイライトされました
+
+| weechat | weechat_pv |
+ String: プレフィックス付のメッセージ |
+ プライベートメッセージの表示
+
+| weechat | window_closing +
+ _(WeeChat バージョン 0.3.6 以上で利用可)_ |
+ Pointer: ウィンドウ |
+ ウィンドウを閉じています
+
+| weechat | window_closed +
+ _(WeeChat バージョン 0.3.6 以上で利用可)_ |
+ Pointer: ウィンドウ |
+ ウィンドウを閉じた
+
+| weechat | window_opened +
+ _(WeeChat バージョン 0.4.1 以上で利用可)_ |
+ Pointer: ウィンドウ |
+ ウィンドウを開いた
+
+| weechat | window_scrolled |
+ Pointer: ウィンドウ |
+ ウィンドウをスクロール
+
+| weechat | window_switch +
+ _(WeeChat バージョン 0.3.7 以上で利用可)_ |
+ Pointer: ウィンドウ |
+ ウィンドウを切り替え
+
+| weechat | window_zoom |
+ Pointer: 現在のウィンドウ |
+ ウィンドウをズーム中
+
+| weechat | window_zoomed |
+ Pointer: 現在のウィンドウ |
+ ウィンドウをズーム
+
+| weechat | window_unzoom |
+ Pointer: 現在のウィンドウ |
+ ウィンドウのズームを元に戻している
+
+| weechat | window_unzoomed |
+ Pointer: 現在のウィンドウ |
+ ウィンドウのズームを元に戻す
+
+| xfer | xfer_add |
+ Pointer: xfer 情報を含む infolist |
+ 新しい xfer
+
+| xfer | xfer_send_ready |
+ Pointer: xfer 情報を含む infolist |
+ Xfer の準備完了
+
+| xfer | xfer_accept_resume |
+ Pointer: xfer 情報を含む infolist |
+ Xfer のレジュームを受け入れる
+
+| xfer | xfer_send_accept_resume |
+ Pointer: xfer 情報を含む infolist |
+ Xfer のレジュームの受け入れを完了
+
+| xfer | xfer_start_resume |
+ Pointer: xfer 情報を含む infolist |
+ レジュームの開始
+
+| xfer | xfer_resume_ready |
+ Pointer: xfer 情報を含む infolist |
+ Xfer レジュームの準備完了
+
+| xfer | xfer_ended +
+ _(WeeChat バージョン 0.3.2 以上で利用可)_ |
+ Pointer: xfer 情報を含む infolist |
+ Xfer を終了
+|===
+
+[NOTE]
+^(1)^ 'xxx' はサーバ名、'yyy' は IRC コマンド名。
+
+C 言語での使用例:
+
+[source,C]
+----
+int
+my_signal_cb (void *data, const char *signal, const char *type_data,
+ void *signal_data)
+{
+ /* ... */
+ return WEECHAT_RC_OK;
+}
+
+/* catch signal "quit" */
+struct t_hook *my_signal_hook = weechat_hook_signal ("quit",
+ &my_signal_cb, NULL);
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+hook = weechat.hook_signal(signal, callback, callback_data)
+
+# example
+def my_signal_cb(data, signal, signal_data):
+ # ...
+ return weechat.WEECHAT_RC_OK
+
+# catch signal "quit"
+hook = weechat.hook_signal("quit", "my_signal_cb", "")
+----
+
+==== weechat_hook_signal_send
+
+シグナルを送信。
+
+プロトタイプ:
+
+[source,C]
+----
+void weechat_hook_signal_send (const char *signal, const char *type_data,
+ void *signal_data);
+----
+
+引数:
+
+* 'signal': 送信するシグナル
+* 'type_data': シグナルと一緒に送信するデータの型
+ (<<_weechat_hook_signal,weechat_hook_signal>> を参照)
+* 'signal_data': シグナルと一緒に送信するデータ
+
+C 言語での使用例:
+
+[source,C]
+----
+weechat_hook_signal_send ("my_signal", WEECHAT_HOOK_SIGNAL_STRING, my_string);
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+weechat.hook_signal_send(signal, type_data, signal_data)
+
+# example
+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 シグナル
+
+プログラミング言語ごとに、スクリプトをインストールするために送信するシグナルが 5 種類あります:
+
+* 'perl_script_install'
+* 'python_script_install'
+* 'ruby_script_install'
+* 'lua_script_install'
+* 'tcl_script_install'
+
+シグナルを受け取ったらコールバックは以下のように働きます:
+
+. インストール済みスクリプトを再読み込みして削除。
+. 新しいスクリプトをディレクトリ '~/.weechat/xxx/' に移動 ('xxx' はプログラミング言語)
+. 新しいスクリプトへのリンクをディレクトリ '~/.weechat/xxx/autoload/' に作成
+. 新しいスクリプトを読み込む
+
+スクリプト 'weeget.py' はスクリプトをインストールする際にこれらのシグナルを使っています。
+
+引数はインストールするスクリプトのパスを収めた文字列です。
+
+C 言語での使用例:
+
+[source,C]
+----
+weechat_hook_signal_send ("python_script_install", WEECHAT_HOOK_SIGNAL_STRING,
+ "/home/xxx/.weechat/test.py");
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+weechat.hook_signal_send("python_script_install", WEECHAT_HOOK_SIGNAL_STRING,
+ "/home/xxx/.weechat/test.py")
+----
+
+[[signals_xxx_script_remove]]
+===== xxx_script_remove シグナル
+
+プログラミング言語ごとに、リスト文字列に含まれるスクリプトを削除するために送信するシグナルが 5 種類あります:
+
+* 'perl_script_remove'
+* 'python_script_remove'
+* 'ruby_script_remove'
+* 'lua_script_remove'
+* 'tcl_script_remove'
+
+リスト文字列に含まれるそれぞれのスクリプトについて、コールバックはスクリプトを再読み込みして削除します。
+
+スクリプト 'weeget.py' はスクリプトを削除する際にこれらのシグナルを使っています。
+
+引数は削除したいスクリプトのコンマ区切りリスト文字列です
+(パスを含まないスクリプトの名前を使います、例えば 'script.py').
+
+C 言語での使用例:
+
+[source,C]
+----
+/* unload and remove scripts test.py and script.py */
+weechat_hook_signal_send ("python_script_remove", WEECHAT_HOOK_SIGNAL_STRING,
+ "test.py,script.py");
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# unload and remove scripts test.py and 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 以上で利用可。_
+
+irc バッファ(サーバ、チャンネル、プライベート)
+への入力をシミュレートするにはシグナル "irc_input_send" を送信してください。
+
+引数は以下のフォーマットに従う文字列です:
+
+* 内部サーバ名 (必須)
+* セミコロン
+* チャンネル名 (任意)
+* セミコロン
+* メッセージを送信する際に使うフラグ (任意、デフォルトは 1):
+** '1': 高い優先度を持つキュー (ユーザメッセージなどと同等)
+** '2': 低い優先度を持つキュー (WeeChat が自動的に送信するメッセージと同等)
+* セミコロン
+* メッセージを送信する際に使うタグのコンマ区切りリスト (任意)
+* セミコロン
+* テキストまたはコマンド (必須)
+
+C 言語での使用例:
+
+[source,C]
+----
+/* say "Hello!" on freenode server, #weechat channel */
+weechat_hook_signal_send ("irc_input_send", WEECHAT_HOOK_SIGNAL_STRING,
+ "freenode;#weechat;1;;Hello!");
+
+/* send command "/whois FlashCode" on freenode server, with low priority */
+weechat_hook_signal_send ("irc_input_send", WEECHAT_HOOK_SIGNAL_STRING,
+ "freenode;;2;;/whois FlashCode");
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# say "Hello!" on freenode server, #weechat channel
+weechat.hook_signal_send("irc_input_send", weechat.WEECHAT_HOOK_SIGNAL_STRING,
+ "freenode;#weechat;1;;Hello!")
+
+# send command "/whois FlashCode" on freenode server, with low priority
+weechat.hook_signal_send("irc_input_send", weechat.WEECHAT_HOOK_SIGNAL_STRING,
+ "freenode;;2;;/whois FlashCode")
+----
+
+==== weechat_hook_hsignal
+
+_WeeChat バージョン 0.3.4 以上で利用可。_
+
+hsignal (ハッシュテーブルを持つシグナル) をフック。
+
+プロトタイプ:
+
+[source,C]
+----
+struct t_hook *weechat_hook_hsignal (const char *signal,
+ int (*callback)(void *data,
+ const char *signal,
+ struct t_hashtable *hashtable),
+ void *callback_data);
+----
+
+Arguments:
+
+* 'signal': キャッチするシグナル、最初と最後に "*" を使えます
+ (優先度の設定が可能、<<hook_priority,優先度>>に関する注意を参照)
+ (以下の表を参照)
+* 'callback':
+ シグナルを受信した際に呼び出す関数、引数と戻り値:
+** 'void *data': ポインタ
+** 'const char *signal': 受信したシグナル
+** 'struct t_hashtable *hashtable': ハッシュテーブル
+** 戻り値:
+*** 'WEECHAT_RC_OK'
+*** 'WEECHAT_RC_OK_EAT' (直ちにシグナルの送信を止める)
+ _(WeeChat バージョン 0.4.0 以上で利用可)_
+*** 'WEECHAT_RC_ERROR'
+* 'callback_data': WeeChat がコールバックを呼び出す際にコールバックに渡すポインタ
+
+戻り値:
+
+* 新しいフックへのポインタ、エラーが起きた場合は NULL
+
+hsignal のリスト:
+
+[width="100%",cols="^1,^3,5,5",options="header"]
+|===
+| プラグイン | シグナル | 引数 | 説明
+
+| irc | irc_redirection_xxx_yyy ^(1)^ +
+ _(WeeChat バージョン 0.3.4 以上で利用可)_ |
+ <<hsignal_irc_redirect_command,hsignal_irc_redirect_command>> を参照 |
+ 出力の転送
+
+| weechat | 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 | 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 | 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 | 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 | 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 | 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 (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);
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+hook = weechat.hook_hsignal(signal, callback, callback_data)
+
+# example
+def my_hsignal_cb(data, signal, hashtable):
+ # ...
+ return weechat.WEECHAT_RC_OK
+
+hook = weechat.hook_hsignal("test", "my_hsignal_cb", "")
+----
+
+==== weechat_hook_hsignal_send
+
+_WeeChat バージョン 0.3.4 以上で利用可。_
+
+hsignal (ハッシュテーブルを持つシグナル) を送信。
+
+プロトタイプ:
+
+[source,C]
+----
+void weechat_hook_hsignal_send (const char *signal, struct t_hashtable *hashtable);
+----
+
+引数:
+
+* 'signal': 送信するシグナル
+* 'hashtable': ハッシュテーブル
+
+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, "key", "value");
+ weechat_hook_hsignal_send ("my_hsignal", hashtable);
+ weechat_hashtable_free (hashtable);
+}
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+weechat.hook_hsignal_send(signal, hashtable)
+
+# example
+weechat.hook_hsignal_send("my_hsignal", { "key": "value" })
+----
+
+[[hsignal_irc_redirect_command]]
+===== Hsignal irc_redirect_command
+
+_WeeChat バージョン 0.3.4 以上で利用可。_
+
+hsignal "irc_redirect_command" は 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'
+** '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 (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);
+struct t_hashtable *hashtable = weechat_hashtable_new (8,
+ WEECHAT_HASHTABLE_STRING,
+ WEECHAT_HASHTABLE_STRING,
+ NULL,
+ NULL);
+if (hashtable)
+{
+ weechat_hashtable_set (hashtable, "server", "freenode");
+ 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,
+ "freenode;;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": "freenode", "pattern": "whois", "signal": "test",
+ "string": "FlashCode" })
+weechat.hook_signal_send("irc_input_send", weechat.WEECHAT_HOOK_SIGNAL_STRING,
+ "freenode;;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'
+には受け取ったメッセージに必ず含まれていなければいけない
+"string" の位置を示す整数を与えることが可能、例:
+
+----
+352:1,354,401:1
+----
+
+コマンド 352 と 401 の応答は最初の受信メッセージの第
+1 引数に "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" })
+# now redirect irc whois command with hsignal irc_redirect_command
+# using pattern "my_whois"
+# ...
+----
+
+==== weechat_hook_config
+
+設定オプションをフック。
+
+プロトタイプ:
+
+[source,C]
+----
+struct t_hook *weechat_hook_config (const char *option,
+ int (*callback)(void *data,
+ const char *option,
+ const char *value),
+ void *callback_data);
+----
+
+引数:
+
+* 'option': オプション、フォーマットは完全な名前、コマンド `/set` で使うのと同じ
+ (例: `weechat.look.item_time_format`)
+ (優先度の設定が可能、<<hook_priority,優先度>>に関する注意を参照)
+* 'callback':
+ 設定オプションが変更されたら呼び出す関数、引数と戻り値:
+** 'void *data': ポインタ
+** 'const char *option': オプションの名前
+** 'const char *value': オプションの新しい値
+** 戻り値:
+*** 'WEECHAT_RC_OK'
+*** 'WEECHAT_RC_ERROR'
+* 'callback_data': WeeChat がコールバックを呼び出す際にコールバックに渡すポインタ
+
+戻り値:
+
+* 新しいフックへのポインタ、エラーが起きた場合は NULL
+
+C 言語での使用例:
+
+[source,C]
+----
+int
+my_config_cb (void *data, const char *option, const char *value)
+{
+ /* ... */
+ return WEECHAT_RC_OK;
+}
+
+/* catch changes to option "weechat.look.item_time_format" */
+struct t_hook *my_config_hook = weechat_hook_config ("weechat.look.item_time_format",
+ &my_config_cb, NULL);
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+hook = weechat.hook_config(option, callback, callback_data)
+
+# example
+def my_config_cb(data, option, value):
+ # ...
+ return weechat.WEECHAT_RC_OK
+
+# catch changes to option "weechat.look.item_time_format"
+hook = weechat.hook_config("weechat.look.item_time_format", "my_config_cb", "")
+----
+
+==== weechat_hook_completion
+
+補完をフック。
+
+プロトタイプ:
+
+[source,C]
+----
+struct t_hook *weechat_hook_completion (const char *completion_item,
+ const char *description,
+ int (*callback)(void *data,
+ const char *completion_item,
+ struct t_gui_buffer *buffer,
+ struct t_gui_completion *completion),
+ void *callback_data);
+----
+
+引数:
+
+* 'completion_item': 補完要素の名前、この後フックされたコマンドで
+ '%(name)' を使うことができます ('completion' 引数)
+ (優先度の設定が可能、<<hook_priority,優先度>>に関する注意を参照)
+* 'description': 補完の説明
+* 'callback': 補完要素 (ユーザはこの要素を使って何かを補完している)
+ が使われた場合に呼び出す関数、引数と戻り値:
+** 'void *data': ポインタ
+** 'const char *completion_item': 補完要素の名前
+** 'struct t_gui_buffer *buffer': 補完が行われたバッファ
+** 'struct t_gui_completion *completion':
+ 補完に際して単語を追加するために使われる構造体
+ (<<_weechat_hook_completion_list_add,weechat_hook_completion_list_add>> を参照)
+** 戻り値:
+*** 'WEECHAT_RC_OK'
+*** 'WEECHAT_RC_ERROR'
+* 'callback_data': WeeChat がコールバックを呼び出す際にコールバックに渡すポインタ
+
+[NOTE]
+補完名はグローバルです (WeeChat
+とプラグインで共有されます)。このため、"plugin_xxx" (ここで "xxx" は要素の名前)
+などの一意的なプレフィックスをつけた名前を使うことをおすすめします。
+
+[IMPORTANT]
+コールバックは
+<<_weechat_hook_completion_list_add,weechat_hook_completion_list_add>>
+関数を呼び出すだけで、コマンドラインをコールバックで絶対に*変更しない*でください。 +
+key[Tab] が押された時にコマンドラインを更新するためには、関数
+<<_weechat_hook_command_run,weechat_hook_command_run>> を使ってコマンド
+"/input complete_next" をフックしてください (コールバックがコマンドラインを更新する場合は必ず
+'WEECHAT_RC_OK_EAT' を返してください。そうすれば WeeChat は補完を行いません)。
+
+戻り値:
+
+* 新しいフックへのポインタ、エラーが起きた場合は NULL
+
+C 言語での使用例:
+
+[source,C]
+----
+int
+my_completion_cb (void *data, const char *completion_item,
+ struct t_gui_buffer *buffer,
+ struct t_gui_completion *completion)
+{
+ weechat_hook_completion_list_add (completion, "word1",
+ 0, WEECHAT_LIST_POS_SORT);
+ weechat_hook_completion_list_add (completion, "test_word2",
+ 0, WEECHAT_LIST_POS_SORT);
+ return WEECHAT_RC_OK;
+}
+
+struct t_hook *my_completion_hook = weechat_hook_completion ("plugin_item",
+ "my custom completion!",
+ &my_completion_cb, NULL);
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+hook = weechat.hook_completion(completion_item, description, callback, callback_data)
+
+# example
+def my_completion_cb(data, completion_item, buffer, completion):
+ weechat.hook_completion_list_add(completion, "word1", 0, weechat.WEECHAT_LIST_POS_SORT)
+ weechat.hook_completion_list_add(completion, "test_word2", 0, weechat.WEECHAT_LIST_POS_SORT)
+ return weechat.WEECHAT_RC_OK
+
+hook = weechat.hook_completion("plugin_item", "my custom completion!",
+ "my_completion_cb", "")
+----
+
+==== weechat_hook_completion_get_string
+
+_WeeChat バージョン 0.3.4 以上で利用可。_
+
+補完プロパティを文字列で取得。
+
+プロトタイプ:
+
+[source,C]
+----
+const char *weechat_hook_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 (void *data, const char *completion_item,
+ struct t_gui_buffer *buffer,
+ struct t_gui_completion *completion)
+{
+ /* get arguments of command */
+ const char *args = weechat_hook_completion_get_string (completion, "args");
+
+ /* completion depending on args */
+ /* ... */
+
+ return WEECHAT_RC_OK;
+}
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+value = weechat.hook_completion_get_string(completion, property)
+
+# example
+def my_completion_cb(data, completion_item, buffer, completion):
+ # get arguments of command
+ args = weechat.hook_completion_get_string(completion, "args")
+ # completion depending on args
+ # ...
+ return weechat.WEECHAT_RC_OK
+----
+
+==== weechat_hook_completion_list_add
+
+補完用に単語を追加。
+
+プロトタイプ:
+
+[source,C]
+----
+void weechat_hook_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 言語での使用例: <<_weechat_hook_completion,weechat_hook_completion>> を参照。
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+weechat.hook_completion_list_add(completion, word, nick_completion, where)
+
+# example: see function hook_completion above
+----
+
+==== weechat_hook_modifier
+
+修飾子をフック。
+
+プロトタイプ:
+
+[source,C]
+----
+struct t_hook *weechat_hook_modifier (const char *modifier,
+ char *(*callback)(void *data,
+ const char *modifier,
+ const char *modifier_data,
+ const char *string),
+ void *callback_data);
+----
+
+引数:
+
+* 'modifier': 修飾子名、Weechat またはプラグインが使う修飾子のリスト
+ (優先度の設定が可能、<<hook_priority,優先度>>に関する注意を参照)
+ (以下の表を参照)
+* 'callback': 修飾子が使われた際に呼び出す関数、引数と戻り値:
+** 'void *data': ポインタ
+** 'const char *modifier': 修飾子の名前
+** 'const char *modifier_data': 修飾子に渡すデータ
+** 'const char *string': 修飾子に渡す文字列
+** 戻り値: 新しい文字列
+* 'callback_data': WeeChat がコールバックを呼び出す際にコールバックに渡すポインタ
+
+戻り値:
+
+* 新しいフックへのポインタ、エラーが起きた場合は NULL
+
+WeeChat とプラグインが使う修飾子のリスト:
+
+[width="100%",cols="^2,3,4,4",options="header"]
+|===
+| 修飾子 | 修飾子データ | 文字列 | 出力
+
+| charset_decode |
+ plugin.buffer_name |
+ 任意の文字列 |
+ プラグインおよびバッファの文字セットから UTF-8 にデコードされた文字列
+
+| charset_encode |
+ plugin.buffer_name |
+ 任意の文字列 |
+ UTF-8 からプラグインおよびバッファの文字セットにエンコードされた文字列
+
+| irc_color_decode |
+ 色を保持する場合は "1"、削除する場合は "0" |
+ 任意の文字列 |
+ WeeChat 色コードを含む文字列および含まない文字列
+
+| irc_color_encode |
+ 色を保持する場合は "1"、削除する場合は "0" |
+ 任意の文字列 |
+ IRC 色コードを含む文字列および含まない文字列
+
+| irc_command_auth +
+ _(WeeChat バージョン 0.4.1 以上で利用可)_ |
+ サーバ名 |
+ 認証コマンド (例: `/msg nickserv identify password`) |
+ パスワードを隠したコマンド (例: `/msg nickserv identify ********`)
+
+| irc_message_auth +
+ _(WeeChat バージョン 0.4.1 以上で利用可)_ |
+ サーバ名 |
+ `/msg` をサーバに送信した後に表示されるメッセージ |
+ パスワードを隠したメッセージ
+
+| irc_in_xxx ^(1)^ |
+ サーバ名 |
+ IRC サーバから受信したメッセージの内容 (文字セットをデコードする前) |
+ メッセージの新しい内容
+
+| irc_in2_xxx ^(1)^ +
+ _(WeeChat バージョン 0.3.5 以上で利用可)_ |
+ サーバ名 |
+ IRC サーバから受信したメッセージの内容 (文字セットをデコードした後) |
+ メッセージの新しい内容
+
+| irc_out1_xxx ^(1)^ +
+ _(WeeChat バージョン 0.3.7 以上で利用可)_ |
+ サーバ名 |
+ IRC サーバに送信するメッセージの内容 (512 バイトを超えないように自動分割する前) |
+ メッセージの新しい内容
+
+| irc_out_xxx ^(1)^ |
+ サーバ名 |
+ IRC サーバに送信するメッセージの内容 (512 バイトを超えないように自動分割した後) |
+ メッセージの新しい内容
+
+| bar_condition_yyy ^(2)^ |
+ ウィンドウへのポインタの文字列 ("0x123..") |
+ 空文字列 |
+ バーを表示する場合は "1"、隠す場合は "0"
+
+| history_add +
+ _(WeeChat バージョン 0.3.2 以上で利用可)_ |
+ バッファへのポインタの文字列 ("0x123..") |
+ コマンド履歴に追加するコマンドラインの内容 (バッファとグローバル履歴) |
+ コマンド履歴に追加した文字列
+
+| input_text_content |
+ バッファへのポインタの文字列 ("0x123..") |
+ コマンドラインの内容 |
+ コマンドラインの新しい内容
+
+| input_text_display |
+ バッファへのポインタの文字列 ("0x123..") |
+ カーソルタグを含まないコマンドラインの内容 |
+ 新しい文字列、表示のみ (コマンドラインは変化しない)
+
+| input_text_display_with_cursor |
+ バッファへのポインタの文字列 ("0x123..") |
+ カーソルタグを含むコマンドラインの内容 |
+ 新しい文字列、表示のみ (コマンドラインは変化しない)
+
+| input_text_for_buffer +
+ _(WeeChat バージョン 0.3.7 以上で利用可)_ |
+ バッファへのポインタの文字列 ("0x123..") |
+ バッファに送信するコマンドラインの内容 (テキストまたはコマンド) |
+ バッファに送信するコマンドラインの新しい内容
+
+| weechat_print |
+ plugin + ";" + buffer_name + ";" + tags |
+ 表示されたメッセージ |
+ 表示される新しいメッセージ
+|===
+
+[NOTE]
+^(1)^ 'xxx' は IRC コマンド名。 +
+^(2)^ 'yyy' はバーの名前。
+
+C 言語での使用例:
+
+[source,C]
+----
+char *
+my_modifier_cb (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)
+ {
+ /* add "xxx" to any message printed */
+ snprintf (result, length, "%s xxx", string);
+ }
+
+ return result;
+}
+
+struct t_hook *my_modifier_hook = weechat_hook_modifier ("weechat_print",
+ &my_modifier_cb, NULL);
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+hook = weechat.hook_modifier(modifier, callback, callback_data)
+
+# example
+def my_modifier_cb(data, modifier, modifier_data, string):
+ return "%s xxx" % string
+
+hook = weechat.hook_modifier("weechat_print", "my_modifier_cb", "")
+----
+
+==== weechat_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
+
+C 言語での使用例:
+
+[source,C]
+----
+char *new_string = weechat_hook_modifier_exec ("my_modifier",
+ my_data, my_string);
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+weechat.hook_modifier_exec(modifier, modifier_data, string)
+
+# example
+weechat.hook_modifier_exec("my_modifier", my_data, my_string)
+----
+
+==== weechat_hook_info
+
+情報をフック (コールバックを呼び出し、文字列を返す)。
+
+プロトタイプ:
+
+[source,C]
+----
+struct t_hook *weechat_hook_info (const char *info_name,
+ const char *description,
+ const char *args_description,
+ const char *(*callback)(void *data,
+ const char *info_name,
+ const char *arguments),
+ void *callback_data);
+----
+
+引数:
+
+* 'info_name': 情報の名前
+ (優先度の設定が可能、<<hook_priority,優先度>>に関する注意を参照)
+* 'description': 説明
+* 'args_description': 引数の説明 (任意、NULL にすることも可)
+* 'callback': 情報が要求されたら呼び出す関数、引数と戻り値:
+** 'void *data': ポインタ
+** 'const char *info_name': 情報の名前
+** 'const char *arguments': 追加の引数、情報に依存
+** 戻り値: 要求された情報の値
+* 'callback_data': WeeChat がコールバックを呼び出す際にコールバックに渡すポインタ
+
+戻り値:
+
+* 新しいフックへのポインタ、エラーが起きた場合は NULL
+
+C 言語での使用例:
+
+[source,C]
+----
+const char *
+my_info_cb (void *data, const char *info_name, const char *arguments)
+{
+ /* ... */
+ return pointer_to_string;
+}
+
+/* add info "my_info" */
+struct t_hook *my_info_hook = weechat_hook_info ("my_info",
+ "Some info",
+ "Info about arguments",
+ &my_info_cb, NULL);
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+hook = weechat.hook_info(info_name, description, args_description, callback, callback_data)
+
+# example
+def my_info_cb(data, info_name, arguments):
+ return "some_info"
+
+hook = weechat.hook_info("my_info", "Some info", "Info about arguments",
+ "my_info_cb", "")
+----
+
+==== weechat_hook_info_hashtable
+
+_WeeChat バージョン 0.3.4 以上で利用可。_
+
+情報をフック (コールバックを呼び出し、ハッシュテーブルを返す)。
+
+プロトタイプ:
+
+[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)(void *data,
+ const char *info_name,
+ struct t_hashtable *hashtable),
+ void *callback_data);
+----
+
+引数:
+
+* 'info_name': 情報の名前
+ (優先度の設定が可能、<<hook_priority,優先度>>に関する注意を参照)
+* 'description': 説明
+* 'args_description': 引数ハッシュテーブルの説明 (任意、NULL でも可)
+* 'output_description': コールバックが返すハッシュテーブルの説明
+ (任意、NULL でも可)
+* 'callback': 情報を要求する際に呼び出す関数、引数と戻り値:
+** 'void *data': ポインタ
+** 'const char *info_name': 情報の名前
+** 'struct t_hashtable *hashtable': ハッシュテーブル、情報に依存
+** 戻り値: 要求したハッシュテーブル
+* 'callback_data': WeeChat がコールバックを呼び出す際にコールバックに渡すポインタ
+
+戻り値:
+
+* 新しいフックへのポインタ、エラーが起きた場合は NULL
+
+C 言語での使用例:
+
+[source,C]
+----
+struct t_hashtable *
+my_info_hashtable_cb (void *data, const char *info_name, struct t_hashtable *hashtable)
+{
+ /* ... */
+ return pointer_to_new_hashtable;
+}
+
+/* add info "my_info_hashtable" */
+struct t_hook *my_info_hook = weechat_hook_info_hashtable ("my_info_hashtable",
+ "Some info",
+ "Info about input hashtable",
+ "Info about output hashtable",
+ &my_info_hashtable_cb, NULL);
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+hook = weechat.hook_info_hashtable(info_name, description, args_description,
+ output_description, callback, callback_data)
+
+# example
+def my_info_hashtable_cb(data, info_name, hashtable):
+ return { "test_key": "test_value" }
+
+hook = weechat.hook_info_hashtable("my_info_hashtable", "Some info",
+ "Info about input hashtable",
+ "Info about output hashtable",
+ "my_info_hashtable_cb", "")
+----
+
+==== weechat_hook_infolist
+
+インフォリストをフック: コールバックは要求したインフォリストへのポインタを返す。
+
+プロトタイプ:
+
+[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)(void *data,
+ const char *infolist_name,
+ void *pointer,
+ const char *arguments),
+ void *callback_data);
+----
+
+引数:
+
+* 'infolist_name': インフォリストの名前
+ (優先度の設定が可能、<<hook_priority,優先度>>に関する注意を参照)
+* 'description': 説明
+* 'pointer_description': ポインタの説明 (任意、NULL でも可)
+* 'args_description': 引数の説明 (任意、NULL でも可)
+* 'callback':
+ インフォリストが要求された際に呼び出すコールバック、引数と戻り値:
+** 'void *data': ポインタ
+** 'const char *infolist_name': インフォリストの名前
+** 'void *pointer': インフォリストが返すオブジェクトへのポインタ
+ (インフォリストの要素を 1 つだけ返す)
+** 'const char *arguments': 追加の引数、インフォリストに依存
+** 戻り値: 要求したインフォリスト
+* 'callback_data': WeeChat がコールバックを呼び出す際にコールバックに渡すポインタ
+
+戻り値:
+
+* 新しいフックへのポインタ、エラーが起きた場合は NULL
+
+C 言語での使用例:
+
+[source,C]
+----
+struct t_infolist *
+my_infolist_cb (void *data, const char *infolist_name, void *pointer,
+ const char *arguments)
+{
+ struct t_infolist *my_infolist;
+
+ /* build infolist */
+ /* ... */
+
+ return my_infolist;
+}
+
+/* add infolist "my_infolist" */
+struct t_hook *my_infolist = weechat_hook_infolist ("my_infolist",
+ "Infolist with some data",
+ "Info about pointer",
+ "Info about arguments",
+ &my_infolist_cb, NULL);
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+hook = weechat.hook_infolist(infolist_name, description, pointer_description,
+ args_description, callback, callback_data)
+
+# example
+def my_infolist_cb(data, infolist_name, pointer, arguments):
+ # build infolist
+ # ...
+ return my_infolist
+
+hook = weechat.hook_infolist("my_infolist", "Infolist with some data",
+ "Info about pointer", "Info about arguments",
+ "my_infolist_cb", "")
+----
+
+==== weechat_hook_hdata
+
+hdata をフック: コールバックは要求した hdata へのポインタを返す。
+
+プロトタイプ:
+
+[source,C]
+----
+struct t_hook *weechat_hook_hdata (const char *hdata_name,
+ const char *description,
+ struct t_hdata *(*callback)(void *data,
+ const char *hdata_name),
+ void *callback_data);
+----
+
+引数:
+
+* 'hdata_name': hdata の名前
+ (優先度の設定が可能、<<hook_priority,優先度>>に関する注意を参照)
+* 'description': 説明
+* 'callback':
+ hdata が要求された際に呼び出す関数、引数と戻り値:
+** 'void *data': ポインタ
+** 'const char *hdata_name': hdata の名前
+** 戻り値: 要求された hdata
+* 'callback_data': WeeChat がコールバックを呼び出す際にコールバックに渡すポインタ
+
+戻り値:
+
+* 新しいフックへのポインタ、エラーが起きた場合は NULL
+
+C 言語での使用例:
+
+[source,C]
+----
+struct t_hdata *
+my_hdata_cb (void *data, const char *hdata_name)
+{
+ struct t_hdata *my_hdata;
+
+ /* build hdata */
+ /* ... */
+
+ return my_hdata;
+}
+
+/* add hdata "my_hdata" */
+struct t_hook *my_hdata = weechat_hook_hdata ("my_hdata",
+ "Hdata for my structure",
+ &my_hdata_cb, NULL);
+----
+
+[NOTE]
+スクリプト API ではこの関数を利用できません。
+
+==== weechat_hook_focus
+
+フォーカス (マウスイベントやカーソルモード
+(カーソルが自由に移動出来る状態) でキーが押されたこと) をフック。
+
+プロトタイプ:
+
+[source,C]
+----
+struct t_hook *weechat_hook_focus (const char *area,
+ struct t_hashtable *(*callback)(void *data,
+ struct t_hashtable *info),
+ void *callback_data);
+----
+
+引数:
+
+* 'area': チャットエリアの場合は "chat"、またはバー要素の名前
+ (優先度の設定が可能、<<hook_priority,優先度>>に関する注意を参照)
+* 'callback':
+ フォーカスが当たったら呼び出す関数、引数と戻り値:
+** 'void *data': ポインタ
+** 'struct t_hashtable *info': フォーカスの情報を含むハッシュテーブルと、他の
+ (より高い優先度を持つ) フォーカスコールバックを呼び出して返された文字列 (以下のテーブルを参照)
+** 戻り値: "info" ポインタ (完全なハッシュテーブル)
+ または新しいハッシュテーブル (コールバックが作成、キーと値は
+ "string" 型) へのポインタ、この新しいハッシュテーブルの内容は
+ 'info' に追加され、他のフォーカスコールバックに渡されます
+* 'callback_data': WeeChat がコールバックを呼び出す際にコールバックに渡すポインタ
+
+[IMPORTANT]
+マウスジェスチャの場合、コールバックを 2 回呼び出します: 1
+回目はボタンが押された時 (この時のエリアはジェスチャ対象のエリアです)、2
+回目はボタンが離された時 (この時のエリアはマスジェスチャを開始したエリアとは異なる場合があります):
+このため、必ず*毎回* コールバックをテストして、ハッシュテーブルに含まれる
+info を使う前にエリアが一致していることを確認して下さい。
+
+コールバックに送られるハッシュテーブルの内容 (キーと値は "string" 型):
+
+[width="100%",cols="5m,5,8,3",options="header"]
+|===
+| キー ^(1)^ | 説明 | 値の例 | 定義できない場合の値
+| _x | スクリーン上での列座標 2+| "0" ... "n"
+| _y | スクリーン上での行座標 2+| "0" ... "n"
+| _key | キーまたはマウスイベント 2+| "button1"、"button2-gesture-left"、...
+| _window | ウィンドウへのポインタ | "0x12345678" | ""
+| _window_number | ウィンドウの番号 | "1" ... "n" | "*"
+| _buffer | バッファへのポインタ | "0x12345678" | ""
+| _buffer_number | バッファの番号 | "1" ... "n" | "-1"
+| _buffer_plugin | バッファのプラグイン名 | "core"、"irc"、... | ""
+| _buffer_name | バッファの名前 | "weechat"、"freenode.#weechat"、... | ""
+| _buffer_full_name | バッファの完全な名前 | "core.weechat"、"irc.freenode.#weechat"、... | ""
+| _buffer_localvar_XXX ^(2)^ | バッファのローカル変数 | 任意の値 | 未定義
+| _chat | チャットエリアインジケータ | "0" または "1" | "0"
+| _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) の位置にある単語 | "Hello" | ""
+| _chat_bol | 行頭から (x-1,y) まで | "He" | ""
+| _chat_eol | (x,y) から行末まで | "llo world!" | ""
+| _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"
+|===
+
+[NOTE]
+^(1)^ "2" を後ろにつけたキー (例: "_x2"、"_y2"、"_window2"、...)
+には 2 番目の位置に関する情報が収められています
+(この値に意味があるマウスジェスチャの時だけで、マウスボタンの離された位置に関する情報が収められています)。 +
+^(2)^ `XXX` はバッファのローカル変数の名前です。 +
+^(3)^ これは自由内容のバッファで定義されています。 +
+^(4)^ WeeChat がバッファに行を追加した日付です
+("_chat_line_date" よりも大きいか同じ)。
+
+バー要素 "buffer_nicklist" の追加情報:
+
+[width="70%",cols="3m,3,8",options="header"]
+|===
+| キー | プラグイン ^(1)^ | 説明
+| nick | core | ニックネーム
+| prefix | core | ニックネームのプレフィックス
+| group | core | グループ名
+| irc_host | irc | ニックネームのホスト名 (判る場合)
+|===
+
+[NOTE]
+^(1)^ プラグインの名前は hook_focus
+がどのバー要素に関する情報を渡したかを意味しています (したがって、例えばプラグインが
+"irc" の場合、ハッシュテーブル info の内容は irc バッファに関するものになります)。
+
+戻り値:
+
+* 新しいフックへのポインタ、エラーが起きた場合は NULL
+
+C 言語での使用例:
+
+[source,C]
+----
+struct t_hashtable *
+my_focus_nicklist_cb (void *data, struct t_hashtable *info)
+{
+ /* add strings in hashtable */
+ /* ... */
+
+ return info;
+}
+
+/* add focus on nicklist */
+struct t_hook *my_focus = weechat_hook_focus ("buffer_nicklist",
+ &my_focus_nicklist_cb, NULL);
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+hook = weechat.hook_focus(area, callback, callback_data)
+
+# example
+def my_focus_nicklist_cb(data, info):
+ # build dict
+ # ...
+ return my_dict
+
+hook = weechat.hook_focus("buffer_nicklist", "my_focus_nicklist_cb", "")
+----
+
+==== weechat_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` で 'command'
+ をタイプした時のフックで表示されるスクリプト名)
+
+| stdin +
+ _(WeeChat バージョン 0.4.3 以上で利用可)_ |
+ 'process' 、'process_hashtable' | 任意の文字列 |
+ 子プロセスの標準入力 ('stdin') にデータを送信
+
+| stdin_close +
+ _(WeeChat バージョン 0.4.3 以上で利用可)_ |
+ 'process' 、'process_hashtable' | (非使用) |
+ 子プロセスの標準入力 ('stdin') にデータを送信するパイプを閉じる
+|===
+
+C 言語での使用例:
+
+[source,C]
+----
+struct t_hook *my_command_hook =
+ weechat_hook_command ("abcd", "description",
+ "args", "description args",
+ "", &my_command_cb, NULL);
+weechat_hook_set (my_command_hook, "subplugin", "test");
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+weechat.hook_set(hook, property, value)
+
+# example
+def my_process_cb(data, command, return_code, out, err):
+ # ...
+ return weechat.WEECHAT_RC_OK
+
+hook = weechat.hook_process_hashtable("/path/to/command", { "stdin": "1" },
+ 20000, "my_process_cb", "")
+weechat.hook_set(hook, "stdin", "data sent to stdin of child process")
+weechat.hook_set(hook, "stdin_close", "") # optional
+----
+
+==== weechat_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]
+----
+# prototype
+weechat.unhook(hook)
+
+# example
+weechat.unhook(my_hook)
+----
+
+==== weechat_unhook_all
+
+現在のプラグインで設定したフックをすべて解除。
+
+プロトタイプ:
+
+[source,C]
+----
+void weechat_unhook_all ();
+----
+
+C 言語での使用例:
+
+[source,C]
+----
+weechat_unhook_all ();
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+weechat.unhook_all()
+
+# example
+weechat.unhook_all()
+----
+
+[[buffers]]
+=== バッファ
+
+バッファを作成/検索/閉じる関数
+
+==== weechat_buffer_new
+
+新しいバッファを開く。
+
+プロトタイプ:
+
+[source,C]
+----
+struct t_gui_buffer *weechat_buffer_new (const char *name,
+ int (*input_callback)(void *data,
+ struct t_gui_buffer *buffer,
+ const char *input_data),
+ void *input_callback_data,
+ int (*close_callback)(void *data,
+ struct t_gui_buffer *buffer),
+ void *close_callback_data);
+----
+
+引数:
+
+* 'name': バッファの名前 (プラグインに対して固有)
+* 'input_callback':
+ 入力テキストをバッファに挿入する際に呼び出す関数、引数と戻り値:
+** 'void *data': ポインタ
+** 'struct t_gui_buffer *buffer': バッファポインタ
+** 'const char *input_data': 入力データ
+** 戻り値:
+*** 'WEECHAT_RC_OK'
+*** 'WEECHAT_RC_ERROR'
+* 'callback_data': WeeChat がコールバックを呼び出す際にコールバックに渡すポインタ
+* 'close_callback':
+ バッファを閉じる際に呼び出す関数、引数と戻り値:
+** 'void *data': ポインタ
+** 'struct t_gui_buffer *buffer': バッファポインタ
+** 戻り値:
+*** 'WEECHAT_RC_OK'
+*** 'WEECHAT_RC_ERROR'
+* 'callback_data': WeeChat がコールバックを呼び出す際にコールバックに渡すポインタ
+
+戻り値:
+
+* 新しいバッファへのポインタ、エラーが起きた場合は NULL
+
+C 言語での使用例:
+
+[source,C]
+----
+int
+my_input_cb (void *data, struct t_gui_buffer *buffer, const char *input_data)
+{
+ weechat_printf (buffer, "Text: %s", input_data);
+ return WEECHAT_RC_OK;
+}
+
+int
+my_close_cb (void *data, struct t_gui_buffer *buffer)
+{
+ weechat_printf (NULL, "Buffer '%s' will be closed!",
+ 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,
+ &my_close_cb, NULL);
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+buffer = weechat.buffer_new(name, input_callback, input_callback_data,
+ close_callback, close_callback_data)
+
+# example
+def my_input_cb(data, buffer, input_data):
+ weechat.prnt(buffer, "Text: %s" % input_data)
+ return weechat.WEECHAT_RC_OK
+
+def my_close_cb(data, buffer):
+ weechat.prnt("", "Buffer '%s' will be closed!" % weechat.buffer_get_string(buffer, "name"))
+ return weechat.WEECHAT_RC_OK
+
+buffer = weechat.buffer_new("my_buffer", "my_input_cb", "", "my_close_cb", "")
+----
+
+==== weechat_current_buffer
+
+現在のバッファへのポインタを返す (現在のウィンドウに表示されているバッファ)。
+
+プロトタイプ:
+
+[source,C]
+----
+struct t_gui_buffer *weechat_current_buffer ();
+----
+
+戻り値:
+
+* 現在のバッファへのポインタ
+
+C 言語での使用例:
+
+[source,C]
+----
+weechat_printf (weechat_current_buffer (), "Text on current buffer");
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+buffer = weechat.current_buffer()
+
+# example
+weechat.prnt(weechat.current_buffer(), "Text on current buffer")
+----
+
+==== weechat_buffer_search
+
+プラグインおよび名前でバッファを検索。
+
+プロトタイプ:
+
+[source,C]
+----
+struct t_gui_buffer *weechat_buffer_search (const char *plugin,
+ const char *name);
+----
+
+引数:
+
+* 'plugin': プラグインの名前
+* 'name': バッファの名前、NULL または空文字列の場合、現在のバッファ
+ (現在のウィンドウに表示されているバッファ) を返す
+
+戻り値:
+
+* 見つかったバッファへのポインタ、見つからない場合 NULL
+
+C 言語での使用例:
+
+[source,C]
+----
+struct t_gui_buffer *my_buffer = weechat_buffer_search ("my_plugin",
+ "my_buffer");
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+buffer = weechat.buffer_search(plugin, name)
+
+# example
+buffer = weechat.buffer_search("my_plugin", "my_buffer")
+----
+
+==== weechat_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]
+----
+# prototype
+buffer = weechat.buffer_search_main()
+
+# example
+buffer = weechat.buffer_search_main()
+----
+
+==== weechat_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]
+----
+# prototype
+weechat.buffer_clear(buffer)
+
+# example
+buffer = weechat.buffer_search("my_plugin", "my_buffer")
+if buffer != "":
+ weechat.buffer_clear(buffer)
+----
+
+==== weechat_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]
+----
+# prototype
+weechat.buffer_close(buffer)
+
+# example
+buffer = weechat.buffer_new("my_buffer", "my_input_cb", "", "my_close_cb", "")
+# ...
+weechat.buffer_close(buffer)
+----
+
+==== weechat_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]
+----
+# prototype
+weechat.buffer_merge(buffer, target_buffer)
+
+# example
+# merge current buffer with WeeChat "core" buffer
+weechat.buffer_merge(weechat.current_buffer(), weechat.buffer_search_main())
+----
+
+==== weechat_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]
+----
+# prototype
+weechat.buffer_unmerge(buffer, number)
+
+# example
+weechat.buffer_unmerge(weechat.current_buffer(), 1)
+----
+
+==== weechat_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
+** 'print_hooks_enabled': プリントフックが有効化されている場合は 1、そうでない場合は 0
+** 'day_change': 日付変更メッセージを表示する場合は 1、そうでない場合は 0
+** 'lines_hidden': バッファに非表示 (フィルタされた) メッセージが 1
+ 行以上含まれる場合は 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_groups_count': ニックネームリストに含まれるグループの数
+** 'nicklist_nicks_count': ニックネームリストに含まれるニックネームの数
+** 'nicklist_visible_count': 表示されているニックネームとグループの数
+** 'input': 入力可能な場合は 1、そうでない場合は 0
+** 'input_get_unknown_commands': 未定義のコマンドを入力コールバックに送信する場合は
+ 1、そうでない場合は 0
+** 'input_size': 入力サイズ (バイト単位)
+** 'input_length': 入力長 (文字数)
+** 'input_pos': バッファ入力におけるカーソル位置
+** 'input_1st_display': バッファ入力における 1 文字目
+** 'num_history': コマンド履歴の数
+** 'text_search': テキスト検索タイプ:
+*** 0: 現在検索していない
+*** 1: 後方検索 (検索方向: 最古のメッセージに向かって検索)
+*** 2: 前方検索 (検索方向: 最新のメッセージに向かって検索)
+** 'text_search_exact': テキスト検索で大文字小文字を区別する場合は 1
+** 'text_search_found': テキストが見つかった場合は 1、そうでない場合は 0
+
+戻り値:
+
+* プロパティの整数値
+
+C 言語での使用例:
+
+[source,C]
+----
+weechat_printf (NULL, "my buffer number is: %d",
+ weechat_buffer_get_integer (my_buffer, "number"));
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+value = weechat.buffer_get_integer(buffer, property)
+
+# example
+weechat.prnt("", "my buffer number is: %d" % weechat.buffer_get_integer(my_buffer, "number"))
+----
+
+==== weechat_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': バッファの完全な名前 ("plugin.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, "name / short name of buffer are: %s / %s",
+ weechat_buffer_get_string (my_buffer, "name"),
+ weechat_buffer_get_string (my_buffer, "short_name"));
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+value = weechat.buffer_get_string(buffer, property)
+
+# example
+weechat.prnt("", "name / short name of buffer are: %s / %s"
+ % (weechat.buffer_get_string(my_buffer, "name"),
+ weechat.buffer_get_string(my_buffer, "short_name")))
+----
+
+==== weechat_buffer_get_pointer
+
+バッファプロパティのポインタ値を返す。
+
+プロトタイプ:
+
+[source,C]
+----
+void *weechat_buffer_pointer (struct t_gui_buffer *buffer,
+ const char *property);
+----
+
+引数:
+
+* 'buffer': バッファへのポインタ
+* 'property': プロパティ名:
+** 'plugin': このバッファを作ったプラグインへのポインタ
+ (WeeChat メインバッファの場合は NULL)
+** 'highlight_regex_compiled': コンパイル済みの正規表現 'highlight_regex'
+
+戻り値:
+
+* プロパティのポインタ値
+
+C 言語での使用例:
+
+[source,C]
+----
+weechat_printf (NULL, "plugin pointer of my buffer: %lx",
+ weechat_buffer_get_pointer (my_buffer, "plugin"));
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+value = weechat.buffer_get_pointer(buffer, property)
+
+# example
+weechat.prnt("", "plugin pointer of my buffer: %s" % weechat.buffer_get_pointer(my_buffer, "plugin"))
+----
+
+==== weechat_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 |
+ "+": ホットリストを有効化 (グローバル設定、バッファへのポインタは使われない) +
+ "-": ホットリストを無効化 (グローバル設定、バッファへのポインタは使われない) +
+ 優先度: この優先度でホットリストにバッファを追加
+
+| completion_freeze | "0", "1" |
+ "0": 補完を止める (デフォルト)
+ (グローバル設定、バッファへのポインタは使われない) +
+ "1": コマンドラインが更新された際に補完を継続する
+ (グローバル設定、バッファへのポインタは使われない)
+
+| unread | - |
+ バッファの最後の行の後に未読マーカーを設定
+
+| display | "1", "auto" |
+ "1": 指定したバッファを現在のウィンドウに表示 +
+ "auto": 指定したバッファを現在のウィンドウに表示、読了マーカーをリセットしない
+
+| number | 番号 |
+ 指定したバッファをこの番号に移動
+
+| name | 任意の文字列 |
+ 指定したバッファの新しい名前を設定
+
+| short_name | 任意の文字列 |
+ 指定したバッファの新しい短縮名を設定
+
+| type | "formatted" または "free" |
+ バッファのタイプを設定: "formatted" (チャットメッセージ用)、または
+ "free" (自由内容用)
+
+| notify | "0", "1", "2", "3" |
+ バッファの通知レベルを設定: "0" = ホットリストに追加しない、"1" =
+ ハイライトされた場合のみ追加、"2" = ハイライトされた場合とメッセージを受信した場合に追加、"3" =
+ 任意のメッセージを受信した場合に追加
+
+| print_hooks_enabled | "0" or "1" |
+ プリントフックを無効化する場合は "0"、有効化する場合は "1" (新規バッファに対するデフォルト)
+
+| day_change | "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 | タグのコンマ区切りリスト |
+ 指定したバッファ内でこれらのタグをつけられたメッセージだけを対象にハイライトする
+ (区切り文字 "+" で論理 "and" を表現することにより複数のタグを組み合わせて使うことができます、例:
+ "nick_toto+irc_action")
+
+| highlight_tags | タグのコンマ区切りリスト |
+ 指定したバッファ内でこれらのタグをつけられたメッセージを強制的にハイライトする
+ (区切り文字 "+" で論理 "and" を表現することにより複数のタグを組み合わせて使うことができます、例:
+ "nick_toto+irc_action")
+
+| hotlist_max_level_nicks | "nick:level" のコンマ区切りリスト |
+ 指定したバッファに対するホットリストの最大レベルを付けたニックネームのコンマ区切りリスト
+ (レベル: -1: ホットリストに追加しない、0: 低い、1: メッセージ、2:
+ プライベート、3: ハイライト)、例: "joe:2,mike:-1,robert:-1" (joe
+ さんのメッセージはハイライトされない、mike さんと robert さんはホットリストを変更しない)
+
+| hotlist_max_level_nicks_add | "nick:level" のコンマ区切りリスト |
+ ホットリストの最大レベルを付けたニックネームのコンマ区切りリスト、
+ これらのニックネームを指定したバッファ内のニックネームに追加します
+
+| 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"
+ を入力した場合、バッファはこれを受け入れる (未定義のコマンドに対するエラーを出さない)
+
+| localvar_set_xxx | 任意の文字列 |
+ ローカル変数 'xxx' の新しい値を設定
+ (存在しない変数の場合は変数を作成する)
+
+| localvar_del_xxx | - |
+ ローカル変数 'xxx' を削除
+|===
+
+C 言語での使用例:
+
+[source,C]
+----
+/* disable hotlist (for all buffers) */
+weechat_buffer_set (NULL, "hotlist", "-");
+
+/* enable again hotlist */
+weechat_buffer_set (NULL, "hotlist", "+");
+
+/* change buffer name */
+weechat_buffer_set (my_buffer, "name", "my_new_name");
+
+/* add new local variable "toto" with value "abc" */
+weechat_buffer_set (my_buffer, "localvar_set_toto", "abc");
+
+/* remove local variable "toto" */
+weechat_buffer_set (my_buffer, "localvar_del_toto", NULL);
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+weechat.buffer_set(buffer, property, value)
+
+# examples
+
+# disable hotlist (for all buffers)
+weechat.buffer_set("", "hotlist", "-")
+
+# enable again hotlist
+weechat.buffer_set("", "hotlist", "+")
+
+# change buffer name
+weechat.buffer_set(my_buffer, "name", "my_new_name")
+
+# add new local variable "toto" with value "abc"
+weechat.buffer_set(my_buffer, "localvar_set_toto", "abc")
+
+# remove local variable "toto"
+weechat.buffer_set(my_buffer, "localvar_del_toto", "")
+----
+
+==== weechat_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 コールバック関数を設定
+** 'close_callback_data': close コールバックデータを設定
+** 'input_callback': 入力コールバック関数を設定
+** 'input_callback_data': 入力コールバックデータを設定
+** 'nickcmp_callback': ニックネーム比較コールバック関数を設定
+ (ニックネームリストからニックネームを検索する際にこのコールバックを使用) _(WeeChat バージョン 0.3.9 以上で利用可)_
+** 'nickcmp_callback_data': ニックネーム比較コールバックデータを設定
+ _(WeeChat バージョン 0.3.9 以上で利用可)_
+* 'pointer': プロパティの新しいポインタ値
+
+コールバックのプロトタイプ:
+
+[source,C]
+----
+int close_callback (void *data, struct t_gui_buffer *buffer);
+
+int input_callback (void *data, struct t_gui_buffer *buffer, const char *input_data);
+
+int nickcmp_callback (void *data, struct t_gui_buffer *buffer, const char *nick1, const char *nick2);
+----
+
+C 言語での使用例:
+
+[source,C]
+----
+int
+my_close_cb (void *data, struct t_gui_buffer *buffer)
+{
+ /* ... */
+ return WEECHAT_RC_OK;
+}
+
+weechat_buffer_set_pointer (my_buffer, "close_callback", &my_close_cb);
+----
+
+[NOTE]
+スクリプト API ではこの関数を利用できません。
+
+==== weechat_buffer_string_replace_local_var
+
+文字列に含まれるバッファローカル変数をその値で展開する。
+
+プロトタイプ:
+
+[source,C]
+----
+char *weechat_buffer_string_replace_local_var (struct t_gui_buffer *buffer,
+ const char *string);
+----
+
+引数:
+
+* 'buffer': バッファへのポインタ
+* 'string': テキストおよび "$var" フォーマットのローカル変数を含む文字列
+
+戻り値:
+
+* ローカル変数を展開した文字列
+
+C 言語での使用例:
+
+[source,C]
+----
+weechat_buffer_set (my_buffer, "localvar_set_toto", "abc");
+
+char *str = weechat_buffer_string_replace_local_var (my_buffer,
+ "test with $toto");
+/* str contains "test with abc" */
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+value = weechat.buffer_string_replace_local_var(buffer, string)
+
+# example
+weechat.buffer_set(my_buffer, "localvar_set_toto", "abc")
+str = weechat.buffer_string_replace_local_var(my_buffer, "test with $toto")
+# str contains "test with abc"
+----
+
+==== weechat_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", "freenode.#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.freenode.*")); /* 1 */
+ weechat_printf (NULL, "%d", weechat_buffer_match_list (buffer, "irc.oftc.*,python.*")); /* 0 */
+}
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+match = weechat.buffer_match_list(buffer, string)
+
+# example
+buffer = weechat.buffer_search("irc", "freenode.#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.freenode.*")) # 1
+ weechat.prnt("", "%d" % weechat.buffer_match_list(buffer, "irc.oftc.*,python.*")) # 0
+----
+
+[[windows]]
+=== ウィンドウ
+
+ウィンドウを操作する関数。
+
+==== weechat_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]
+----
+# prototype
+window = weechat.current_window()
+
+# example
+current_window = weechat.current_window()
+----
+
+==== weechat_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,
+ "window displaying core buffer: %lx",
+ weechat_window_search_with_buffer (weechat_buffer_search_main ()));
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+window = weechat.window_search_with_buffer(buffer)
+
+# example
+weechat.prnt("", "window displaying core buffer: %s"
+ % weechat.window_search_with_buffer(weechat.buffer_search_main()))
+----
+
+==== weechat_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 座標 (1 列目は 0)
+** 'win_y': 端末内でのウィンドウの Y 座標 (1 行目は 0)
+** 'win_width': ウィンドウの横幅、文字単位
+** 'win_height': ウィンドウの縦幅、文字単位
+** 'win_width_pct': ウィンドウ横幅の百分率、親ウィンドウに対する割合
+ (例えば 50 は半分を意味する)
+** 'win_height_pct': ウィンドウ縦幅の百分率、親ウィンドウに対する割合
+ (例えば 50 は半分を意味する)
+** 'win_chat_x': チャットウィンドウの X 座標 (1 列目は 0)
+** 'win_chat_y': チャットウィンドウの Y 座標 (1 行目は 0)
+** 'win_chat_width': チャットウィンドウの横幅、文字単位
+** 'win_chat_height': チャットウィンドウの縦幅、文字単位
+** 'first_line_displayed': バッファの 1
+ 行目がスクリーンに表示されている場合は 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]
+----
+# prototype
+value = weechat.window_get_integer(window, property)
+
+# example
+weechat.prnt("", "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")))
+----
+
+==== weechat_window_get_string
+
+ウィンドウプロパティの文字列値を返す。
+
+[NOTE]
+現在この関数を使うことはできません、将来のバージョン用に予約されています。
+
+プロトタイプ:
+
+[source,C]
+----
+int weechat_window_get_string (struct t_gui_window *window,
+ const char *property);
+----
+
+引数:
+
+* 'window': ウィンドウへのポインタ
+* 'property': プロパティ名
+
+戻り値:
+
+* プロパティの文字列値
+
+==== weechat_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,
+ "buffer displayed in current window: %lx",
+ weechat_window_get_pointer (weechat_current_window (), "buffer"));
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+value = weechat.window_get_pointer(window, property)
+
+# example
+weechat.prnt("", "buffer displayed in current window: %s"
+ % weechat.window_get_pointer(weechat.current_window(), "buffer"))
+----
+
+==== weechat_window_set_title
+
+ターミナルのタイトルを設定。
+
+プロトタイプ:
+
+[source,C]
+----
+void weechat_window_set_title (const char *title);
+----
+
+引数:
+
+* 'title': ターミナルの新しいタイトル (タイトルをリセットする場合は NULL)
+
+C 言語での使用例:
+
+[source,C]
+----
+weechat_window_set_title ("new title here");
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+weechat.window_set_title(window, title)
+
+# example
+weechat.window_set_title("new title here")
+----
+
+[[nicklist]]
+=== ニックネームリスト
+
+バッファのニックネームリストを操作する関数。
+
+==== weechat_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
+桁以上の数字とパイプ文字を付けると、この数字を使ってニックネームリスト内のグループをソートします。例えば、グループ
+"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]
+----
+# prototype
+group = weechat.nicklist_add_group(buffer, parent_group, name, color, visible)
+
+# example
+group = weechat.nicklist_add_group(my_buffer, my_parent_group, "test_group",
+ "weechat.color.nicklist_group", 1)
+----
+
+==== weechat_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]
+----
+# prototype
+group = weechat.nicklist_search_group(buffer, from_group, name)
+
+# example
+group = weechat.nicklist_search_group(my_buffer, "", "test_group")
+----
+
+==== weechat_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]
+----
+# prototype
+nick = weechat.nicklist_add_nick(buffer, group, name, color, prefix, prefix_color, visible)
+
+# example
+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)
+----
+
+==== weechat_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]
+----
+# prototype
+nick = weechat.nicklist_search_nick(buffer, from_group, name)
+
+# example
+nick = weechat.nicklist_search_nick(my_buffer, "", "test_nick")
+----
+
+==== weechat_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]
+----
+# prototype
+weechat.nicklist_remove_group(buffer, group)
+
+# example
+weechat.nicklist_remove_group(my_buffer, my_group)
+----
+
+==== weechat_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]
+----
+# prototype
+weechat.nicklist_remove_nick(buffer, nick)
+
+# example
+weechat.nicklist_remove_nick(my_buffer, my_nick)
+----
+
+==== weechat_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]
+----
+# prototype
+weechat.nicklist_remove_all(buffer)
+
+# example
+weechat.nicklist_remove_all(my_buffer)
+----
+
+==== weechat_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)
+ {
+ /* nick */
+ /* ... */
+ }
+ else
+ {
+ /* group */
+ /* ... */
+ }
+ weechat_nicklist_get_next_item (buffer, &ptr_group, &ptr_nick);
+}
+----
+
+[NOTE]
+スクリプト API ではこの関数を利用できません。
+
+==== weechat_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]
+----
+# prototype
+value = weechat.nicklist_group_get_integer(buffer, group, property)
+
+# example
+visible = weechat.nicklist_group_get_integer(buffer, group, "visible")
+----
+
+==== weechat_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]
+----
+# prototype
+value = weechat.nicklist_group_get_string(buffer, group, property)
+
+# example
+color = weechat.nicklist_group_get_string(buffer, group, "color")
+----
+
+==== weechat_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]
+----
+# prototype
+value = weechat.nicklist_group_get_pointer(buffer, group, property)
+
+# example
+parent = weechat.nicklist_group_get_pointer(buffer, group, "parent")
+----
+
+==== weechat_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 色オプション名 |
+ 関数 <<_weechat_nicklist_add_group,weechat_nicklist_add_group>>
+ の引数 "color" を参照
+
+| visible | "0"、"1" |
+ "0" = 非表示状態のグループ、"1" = 表示状態のグループ
+|===
+
+C 言語での使用例:
+
+[source,C]
+----
+/* change group color to "bar_fg" */
+weechat_nicklist_group_set (buffer, group, "color", "bar_fg");
+
+/* change group color to yellow */
+weechat_nicklist_group_set (buffer, group, "color", "yellow");
+
+/* hide group in nicklist */
+weechat_nicklist_group_set (buffer, group, "visible", "0");
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+weechat.nicklist_group_set(buffer, group, property, value)
+
+# examples
+
+# change group color to "bar_fg"
+weechat.nicklist_group_set(buffer, group, "color", "bar_fg")
+
+# change group color to yellow
+weechat.nicklist_group_set(buffer, group, "color", "yellow")
+
+# hide group in nicklist
+weechat.nicklist_group_set(buffer, group, "visible", "0")
+----
+
+==== weechat_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]
+----
+# prototype
+value = weechat.nicklist_nick_get_integer(buffer, nick, property)
+
+# example
+visible = weechat.nicklist_nick_get_integer(buffer, nick, "visible")
+----
+
+==== weechat_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]
+----
+# prototype
+value = weechat.nicklist_nick_get_string(buffer, nick, property)
+
+# example
+color = weechat.nicklist_nick_get_string(buffer, nick, "color")
+----
+
+==== weechat_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]
+----
+# prototype
+value = weechat.nicklist_nick_get_pointer(buffer, nick, property)
+
+# example
+group = weechat.nicklist_nick_get_pointer(buffer, nick, "group")
+----
+
+==== weechat_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 色オプション名 |
+ 関数 <<_weechat_nicklist_add_nick,weechat_nicklist_add_nick>>
+ の引数 "color" を参照
+
+| prefix | 任意の文字列 |
+ 指定したニックネームのプレフィックス
+
+| prefix_color | WeeChat color option name |
+ 関数 <<_weechat_nicklist_add_nick,weechat_nicklist_add_nick>>
+ の引数 "prefix_color" を参照
+
+| visible | "0", "1" |
+ "0" = 非表示状態のニックネーム、"1" = 表示状態のニックネーム
+|===
+
+C 言語での使用例:
+
+[source,C]
+----
+/* change nick color to cyan */
+weechat_nicklist_nick_set (buffer, nick, "color", "cyan");
+
+/* change prefix to "+" */
+weechat_nicklist_nick_set (buffer, nick, "prefix", "+");
+
+/* change prefix color to yellow */
+weechat_nicklist_nick_set (buffer, nick, "prefix_color", "yellow");
+
+/* hide nick in nicklist */
+weechat_nicklist_nick_set (buffer, nick, "visible", "0");
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+weechat.nicklist_nick_set(buffer, nick, property, value)
+
+# examples
+
+# change nick color to cyan
+weechat.nicklist_nick_set(buffer, nick, "color", "cyan")
+
+# change prefix to "+"
+weechat.nicklist_nick_set(buffer, nick, "prefix", "+")
+
+# change prefix color to yellow
+weechat.nicklist_nick_set(buffer, nick, "prefix_color", "yellow")
+
+# hide nick in nicklist
+weechat.nicklist_nick_set(buffer, nick, "visible", "0")
+----
+
+[[bars]]
+=== バー
+
+バーを操作する関数。
+
+==== weechat_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]
+----
+# prototype
+bar_item = weechat.bar_item_search(name)
+
+# example
+bar_item = weechat.bar_item_search("myitem")
+----
+
+==== weechat_bar_item_new
+
+_バージョン 0.4.2 で更新。_
+
+新しいバー要素を作成。
+
+プロトタイプ:
+
+[source,C]
+----
+struct t_gui_bar_item *weechat_bar_item_new (const char *name,
+ char *(*build_callback)(void *data,
+ struct t_gui_bar_item *item,
+ struct t_gui_window *window,
+ struct t_gui_buffer *buffer,
+ struct t_hashtable *extra_info),
+ void *build_callback_data);
+----
+
+引数:
+
+* 'name': バー要素の名前
+* 'build_callback':
+ バー要素を作成する際に呼び出す関数、引数と戻り値:
+** 'void *data': ポインタ
+** 'struct t_gui_bar_item *item': 要素へのポインタ
+** 'struct t_gui_window *window':
+ ウィンドウへのポインタ (ルートバーの場合は NULL)
+** 'struct t_gui_buffer *buffer': ウィンドウに表示されているバッファ
+ (ウィンドウが NULL の場合、現在のバッファ) または以下の構文で指定したバー要素に含まれるバッファ:
+ "@buffer:item" _(WeeChat バージョン 0.4.2 以上で利用可)_
+** 'struct t_hashtable *extra_info': 常に NULL
+ (この引数は将来のバージョン用に予約されています) _(WeeChat バージョン 0.4.2 以上で利用可)_
+** 戻り値: バー要素の内容
+* 'build_callback_data': WeeChat
+ が build コールバックを呼び出す際にコールバックに渡すポインタ
+
+戻り値:
+
+* バー要素へのポインタ、エラーが起きた場合は NULL
+
+C 言語での使用例:
+
+[source,C]
+----
+char *
+my_build_callback (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);
+----
+
+スクリプト (Python) での使用例:
+
+[IMPORTANT]
+0.4.1 より古いバージョンに対する互換性のために、デフォルトのコールバックに渡す引数の個数は
+3 個です: 'data' 、'item' 、'window' ('buffer' と 'extra_info' は渡されません)。 +
+全ての引数を受け取るコールバックを使う場合は、名前の前に "(extra)"
+をつけてください、以下の例を参照 (WeeChat ≥ 0.4.2 でのみ有効)。
+
+[source,python]
+----
+# prototype
+bar_item = weechat.bar_item_new(name, build_callback, build_callback_data)
+
+# example (callback without "buffer" and "extra_info")
+def my_build_callback(data, item, window):
+ return "my content"
+
+bar_item = weechat.bar_item_new("myitem", "my_build_callback", "")
+
+# example (callback with all arguments, for 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
+----
+
+==== weechat_bar_item_update
+
+build コールバックを呼び出してバー要素の内容を更新。
+
+プロトタイプ:
+
+[source,C]
+----
+void weechat_bar_item_update (const char *name);
+----
+
+引数:
+
+* 'name': バー要素の名前
+
+C 言語での使用例:
+
+[source,C]
+----
+weechat_bar_item_update ("myitem");
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+weechat.bar_item_update(name)
+
+# example
+weechat.bar_item_update("myitem")
+----
+
+==== weechat_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]
+----
+# prototype
+weechat.bar_item_remove(item)
+
+# example
+weechat.bar_item_remove(myitem)
+----
+
+==== weechat_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]
+----
+# prototype
+bar = weechat.bar_search(name)
+
+# example
+bar = weechat.bar_search("mybar")
+----
+
+==== weechat_bar_new
+
+新しいバーを作成。
+
+プロトタイプ:
+
+[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 *separator,
+ const char *items);
+----
+
+引数:
+
+* 'name': バーの名前
+* 'hidden':
+** 'on': バーを非表示
+** 'off': バーを表示
+* 'priority': バーの優先度 (整数)
+* 'type':
+** 'root': ウィンドウの外に 1 回だけ表示されたバー
+** 'window': 各ウィンドウに表示されたバー
+* 'condition': バーの表示位置:
+** 'active': アクティブウィンドウのみに表示されているバー
+** 'inactive': 非アクティブウィンドウのみに表示されているバー
+** 'nicklist': ニックネームリストを持つウィンドウに表示されているバー
+* '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': バーの背景色
+* '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",
+ "off",
+ "time,buffer_number+buffer_name");
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+bar = weechat.bar_new(name, hidden, priority, type, condition, position,
+ filling_top_bottom, filling_left_right, size, size_max,
+ color_fg, color_delim, color_bg, separator, items)
+
+# example
+bar = weechat.bar_new("mybar", "off", "100", "window", "", "top", "horizontal", "vertical",
+ "0", "5", "default", "cyan", "blue", "off", "time,buffer_number+buffer_name")
+----
+
+==== 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
+ (<<_weechat_bar_new,weechat_bar_new>>
+ を参照)
+* 'value': プロパティの新しい値
+
+戻り値:
+
+* 新しい値を設定した場合は 1、エラーが起きた場合は 0
+
+C 言語での使用例:
+
+[source,C]
+----
+weechat_bar_set (mybar, "position", "bottom");
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+weechat.bar_set(bar, property, value)
+
+# example
+weechat.bar_set(my_bar, "position", "bottom")
+----
+
+==== weechat_bar_update
+
+スクリーン上のバーの内容を更新。
+
+プロトタイプ:
+
+[source,C]
+----
+void weechat_bar_update (const char *name);
+----
+
+引数:
+
+* 'name': バーの名前
+
+C 言語での使用例:
+
+[source,C]
+----
+weechat_bar_update ("mybar");
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+weechat.bar_update(name)
+
+# example
+weechat.bar_update("mybar")
+----
+
+==== weechat_bar_remove
+
+バーを削除。
+
+プロトタイプ:
+
+[source,C]
+----
+void weechat_bar_remove (struct t_gui_bar *bar);
+----
+
+引数:
+
+* 'bar': バーへのポインタ
+
+C 言語での使用例:
+
+[source,C]
+----
+weechat_bar_remove (mybar);
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+weechat.bar_remove(bar)
+
+# example
+weechat.bar_remove(my_bar)
+----
+
+[[commands]]
+=== コマンド
+
+WeeChat コマンドを実行する関数。
+
+==== weechat_command
+
+コマンドを実行。
+
+プロトタイプ:
+
+[source,C]
+----
+void weechat_command (struct t_gui_buffer *buffer, const char *command);
+----
+
+引数:
+
+* 'buffer': バッファへのポインタ
+ (コマンドは指定したバッファで実行されます、現在のバッファで実行するには NULL を指定してください)
+* 'command': 実行するコマンド ("/"
+ で始まっている場合)、またはバッファに送信するテキスト
+
+C 言語での使用例:
+
+[source,C]
+----
+weechat_command (weechat_buffer_search ("irc", "freenode.#weechat"),
+ "/whois FlashCode");
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+weechat.command(buffer, command)
+
+# example
+weechat.command(weechat.buffer_search("irc", "freenode.#weechat"), "/whois FlashCode")
+----
+
+[[network]]
+=== ネットワーク
+
+ネットワーク関数。
+
+==== weechat_network_pass_proxy
+
+プロキシへの接続および認証を確立する。
+
+[IMPORTANT]
+この関数は connect() の呼び出しを遮断します、このため 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、エラーが起きた場合は 0
+
+C 言語での使用例:
+
+[source,C]
+----
+if (weechat_network_pass_proxy ("my_proxy", sock, "irc.freenode.net", 6667))
+{
+ /* OK */
+}
+else
+{
+ /* error */
+}
+----
+
+[NOTE]
+スクリプト API ではこの関数を利用できません。
+
+==== weechat_network_connect_to
+
+_バージョン 0.4.3 で更新。_
+
+リモートホストとの接続を確立する。
+
+[IMPORTANT]
+この関数は connect() の呼び出しを遮断します、このため 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)、エラーが起きた場合は -1
+
+C 言語での使用例:
+
+[source,C]
+----
+struct sockaddr *addr;
+socklen_t length;
+int sock;
+
+/* allocate/set address and port in 'addr', set 'length' */
+/* ... */
+
+sock = weechat_network_connect_to (NULL, addr, length);
+if (sock >= 0)
+{
+ /* OK */
+}
+else
+{
+ /* error */
+}
+----
+
+[NOTE]
+スクリプト API ではこの関数を利用できません。
+
+[[infos]]
+=== 情報
+
+情報を取得する関数。
+
+==== weechat_info_get
+
+文字列型で WeeChat またはプラグインからの情報を返す。
+
+プロトタイプ:
+
+[source,C]
+----
+const char *weechat_info_get (const char *info_name, const char *arguments);
+----
+
+引数:
+
+* 'info_name': 読み出す情報の名前 (以下の表を参照)
+* 'arguments': 指定した情報に対する引数
+ (任意、引数を指定しない場合は NULL)
+
+戻り値:
+
+* 指定した情報を含む文字列、エラーが起きた場合は NULL
+
+情報:
+
+include::autogen/plugin_api/infos.txt[]
+
+C 言語での使用例:
+
+[source,C]
+----
+weechat_printf (NULL, "Current WeeChat version is: %s (compiled on %s)",
+ weechat_info_get ("version", NULL),
+ weechat_info_get ("date", NULL));
+weechat_printf (NULL, "WeeChat home is: %s",
+ weechat_info_get ("weechat_dir", NULL));
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+value = weechat.info_get(info_name, arguments)
+
+# example
+weechat.prnt("", "Current WeeChat version is: %s (compiled on %s)"
+ % (weechat.info_get("version", ""), weechat.info_get("date", ""))
+weechat.prnt("", "WeeChat home is: %s" % weechat.info_get("weechat_dir", ""))
+----
+
+==== weechat_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::autogen/plugin_api/infos_hashtable.txt[]
+
+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",
+ ":nick!user@host PRIVMSG #weechat :message here");
+ hashtable_out = weechat_info_get_hashtable ("irc_message_parse",
+ hashtable_in);
+ /*
+ * now hashtable_out has following keys/values:
+ * "nick" : "nick"
+ * "host" : "nick!user@host"
+ * "command" : "PRIVMSG"
+ * "channel" : "#weechat"
+ * "arguments": "#weechat :message here"
+ */
+ weechat_hashtable_free (hashtable_in);
+ weechat_hashtable_free (hashtable_out);
+}
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+dict = weechat.info_get_hashtable(info_name, dict_in)
+
+# example
+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': 時刻値
+
+==== weechat_infolist_new
+
+新しいインフォリストを作成。
+
+プロトタイプ:
+
+[source,C]
+----
+struct t_infolist *weechat_infolist_new ();
+----
+
+戻り値:
+
+* 新しいインフォリストへのポインタ
+
+C 言語での使用例:
+
+[source,C]
+----
+struct t_infolist *infolist = weechat_infolist_new ();
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+infolist = weechat.infolist_new()
+
+# example
+infolist = weechat.infolist_new()
+----
+
+==== weechat_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]
+----
+# prototype
+item = weechat.infolist_new_item(infolist)
+
+# example
+item = weechat.infolist_new_item(infolist)
+----
+
+==== weechat_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]
+----
+# prototype
+var = weechat.infolist_new_var_integer(item, name, value)
+
+# example
+var = weechat.infolist_new_var_integer(item, "my_integer", 123)
+----
+
+==== weechat_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]
+----
+# prototype
+var = weechat.infolist_new_var_string(item, name, value)
+
+# example
+var = weechat.infolist_new_var_string(item, "my_string", "value")
+----
+
+==== weechat_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]
+----
+# prototype
+var = weechat.infolist_new_var_pointer(item, name, pointer)
+
+# example
+var = weechat.infolist_new_var_pointer(item, "my_pointer", pointer)
+----
+
+==== weechat_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 ではこの関数を利用できません。
+
+==== weechat_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]
+----
+# prototype
+var = weechat.infolist_new_var_time(item, name, time)
+
+# example
+var = weechat.infolist_new_var_time(item, "my_time", int(time.time()))
+----
+
+==== weechat_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::autogen/plugin_api/infolists.txt[]
+
+C 言語での使用例:
+
+[source,C]
+----
+struct t_infolist *infolist = weechat_infolist_get ("irc_server", NULL, NULL);
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+infolist = weechat.infolist_get(infolist_name, pointer, arguments)
+
+# example
+infolist = weechat.infolist_get("irc_server", "", "")
+----
+
+==== weechat_infolist_next
+
+"カーソル" をインフォリスト内の 1 つ後の要素に移動する。あるインフォリストに対するこの関数の呼び出し回数が
+1 回目のの場合は、カーソルをインフォリスト内の最初の要素に移動する。
+
+プロトタイプ:
+
+[source,C]
+----
+int weechat_infolist_next (struct t_infolist *infolist);
+----
+
+引数:
+
+* 'infolist': インフォリストへのポインタ
+
+戻り値:
+
+* カーソルが 1 つ後の要素に移動した場合は 1、リストの最後に到達した場合は 0
+
+C 言語での使用例:
+
+[source,C]
+----
+if (weechat_infolist_next (infolist))
+{
+ /* read variables in item... */
+}
+else
+{
+ /* no more item available */
+}
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+rc = weechat.infolist_next(infolist)
+
+# example
+rc = weechat.infolist_next(infolist)
+if rc:
+ # read variables in item...
+else:
+ # no more item available
+----
+
+==== weechat_infolist_prev
+
+"カーソル" をインフォリスト内の 1 つ前の要素に移動する。あるインフォリストに対するこの関数の呼び出し回数が
+1 回目のの場合は、カーソルをインフォリスト内の最後の要素に移動する。
+
+プロトタイプ:
+
+[source,C]
+----
+int weechat_infolist_prev (struct t_infolist *infolist);
+----
+
+引数:
+
+* 'infolist': インフォリストへのポインタ
+
+戻り値:
+
+* カーソルが 1 つ前の要素に移動した場合は
+ 1、リストの最初に到達した場合は 0
+
+C 言語での使用例:
+
+[source,C]
+----
+if (weechat_infolist_prev (infolist))
+{
+ /* read variables in item... */
+}
+else
+{
+ /* no more item available */
+}
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+rc = weechat.infolist_prev(infolist)
+
+# example
+rc = weechat.infolist_prev(infolist)
+if rc:
+ # read variables in item...
+else:
+ # no more item available
+----
+
+==== weechat_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]
+----
+# prototype
+weechat.infolist_reset_item_cursor(infolist)
+
+# example
+weechat.infolist_reset_item_cursor(infolist)
+----
+
+==== weechat_infolist_fields
+
+現在のインフォリストの要素に対するフィールドのリストを返す。
+
+プロトタイプ:
+
+[source,C]
+----
+const char *weechat_infolist_fields (struct t_infolist *infolist);
+----
+
+引数:
+
+* 'infolist': インフォリストへのポインタ
+
+戻り値:
+
+* 指定したインフォリストの要素に含まれる変数名のリスト。以下の変数名に対応する型の文字を含むコンマ区切りリスト、型は:
+ "i" (整数)、"s" (文字列)、"p"
+ (ポインタ)、"b" (バッファ)、"t" (時刻)。
+
+C 言語での使用例:
+
+[source,C]
+----
+const char *fields = weechat_infolist_fields (infolist);
+/* fields contains something like:
+ "i:my_integer,s:my_string,p:my_pointer,b:my_buffer,t:my_time" */
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+fields = weechat.infolist_fields(infolist)
+
+# example
+fields = weechat.infolist_fields(infolist)
+# fields contains something like:
+# "i:my_integer,s:my_string,p:my_pointer,b:my_buffer,t:my_time"
+----
+
+==== weechat_infolist_integer
+
+現在のインフォリストの要素に含まれる整数変数の値を返す。
+
+プロトタイプ:
+
+[source,C]
+----
+int weechat_infolist_integer (struct t_infolist *infolist, const char *var);
+----
+
+引数:
+
+* 'infolist': インフォリストへのポインタ
+* 'var': 変数名 (必ず"整数"型)
+
+戻り値:
+
+* 変数の整数値
+
+C 言語での使用例:
+
+[source,C]
+----
+weechat_printf (NULL, "integer = %d",
+ weechat_infolist_integer (infolist, "my_integer"));
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+value = weechat.infolist_integer(infolist, var)
+
+# example
+weechat.prnt("", "integer = %d" % weechat.infolist_integer(infolist, "my_integer"))
+----
+
+==== weechat_infolist_string
+
+現在のインフォリストの要素に含まれる文字列変数の値を返す。
+
+プロトタイプ:
+
+[source,C]
+----
+const char *weechat_infolist_string (struct t_infolist *infolist, const char *var);
+----
+
+引数:
+
+* 'infolist': インフォリストへのポインタ
+* 'var': 変数名 (必ず"文字列"型)
+
+戻り値:
+
+* 変数の文字列値
+
+C 言語での使用例:
+
+[source,C]
+----
+weechat_printf (NULL, "string = %s",
+ weechat_infolist_string (infolist, "my_string"));
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+value = weechat.infolist_string(infolist, var)
+
+# example
+weechat.prnt("", "string = %s" % weechat.infolist_string(infolist, "my_string"))
+----
+
+==== weechat_infolist_pointer
+
+現在のインフォリストの要素に含まれるポインタ変数の値を返す。
+
+プロトタイプ:
+
+[source,C]
+----
+void *weechat_infolist_pointer (struct t_infolist *infolist, const char *var);
+----
+
+引数:
+
+* 'infolist': インフォリストへのポインタ
+* 'var': 変数名 (必ず"ポインタ"型)
+
+戻り値:
+
+* 変数のポインタ値
+
+C 言語での使用例:
+
+[source,C]
+----
+weechat_printf (NULL, "pointer = 0x%lx",
+ weechat_infolist_pointer (infolist, "my_pointer"));
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+value = weechat.infolist_pointer(infolist, var)
+
+# example
+weechat.prnt("", "pointer = 0x%s" % weechat.infolist_pointer(infolist, "my_pointer"))
+----
+
+==== weechat_infolist_buffer
+
+現在のインフォリストの要素に含まれるバッファ変数の値を返す。
+
+プロトタイプ:
+
+[source,C]
+----
+void *weechat_infolist_buffer (struct t_infolist *infolist, const char *var,
+ int *size);
+----
+
+引数:
+
+* 'infolist': インフォリストへのポインタ
+* 'var': 変数名 (必ず"バッファ"型)
+* '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 ではこの関数を利用できません。
+
+==== weechat_infolist_time
+
+現在のインフォリストの要素に含まれる時刻変数の値を返す。
+
+プロトタイプ:
+
+[source,C]
+----
+time_t weechat_infolist_time (struct t_infolist *infolist, const char *var);
+----
+
+引数:
+
+* 'infolist': インフォリストへのポインタ
+* 'var': 変数名 (必ず"時刻"型)
+
+戻り値:
+
+* 変数の時刻値
+
+C 言語での使用例:
+
+[source,C]
+----
+weechat_printf (NULL, "time = %ld",
+ weechat_infolist_time (infolist, "my_time"));
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+value = weechat.infolist_time(infolist, var)
+
+# example
+weechat.prnt("", "time = %ld" % weechat.infolist_time(infolist, "my_time"))
+----
+
+==== weechat_infolist_free
+
+インフォリストの領域を開放。
+
+プロトタイプ:
+
+[source,C]
+----
+void weechat_infolist_free (struct t_infolist *infolist);
+----
+
+引数:
+
+* 'infolist': インフォリストへのポインタ
+
+C 言語での使用例:
+
+[source,C]
+----
+weechat_infolist_free (infolist);
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+weechat.infolist_free(infolist)
+
+# example
+weechat.infolist_free(infolist)
+----
+
+[[hdata]]
+=== Hdata
+
+hdata に対する関数 (WeeChat またはプラグインデータへの直アクセス)。
+
+[IMPORTANT]
+hdata を使うことで読み取り専用でデータにアクセスできます。hdata
+変数が示すメモリ領域に何かを書き込むことは*厳禁* です。 +
+データを更新する場合は必ず関数
+<<_weechat_hdata_update,weechat_hdata_update>> を使ってください。
+
+==== weechat_hdata_new
+
+_WeeChat バージョン 0.3.6 以上で利用可、バージョン 0.3.9 と 0.4.0 で更新。_
+
+新規の hdata を作成。
+
+[NOTE]
+.hdata vs インフォリスト
+====
+Hdata を使うことで高速に WeeChat およびプラグインのデータを読み出す事ができます。hdata
+はインフォリストと似ていますが、異なる点もあります:
+
+* hdata はインフォリストに比べて高速でメモリを節約できる: データを複製せずに直接読み出す。
+* hdata とインフォリストのデータは異なる場合がある: hdata 構造体には生データ以外は含まれない
+ (利便性を考慮してインフォリストには余分なデータが追加されている)
+====
+
+プロトタイプ:
+
+[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': 構造体に含まれる変数名。構造体は配列の 1 つ前の要素へのポインタ
+ (変数が利用不可能な場合は NULL でも可)
+* 'var_next': 構造体に含まれる変数名。構造体は配列の 1 つ後の要素へのポインタ
+ (変数が利用不可能な場合は 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': 更新する変数を含むハッシュテーブル
+ (<<_weechat_hdata_update,weechat_hdata_update>> を参照)
+** return value: 更新された変数の数
+* 'callback_update_data': WeeChat が update コールバックを呼び出す際にコールバックに渡すポインタ
+ _(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 ではこの関数を利用できません。
+
+==== weechat_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': 変数型、以下の 1 つ:
+** 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 ではこの関数を利用できません。
+
+==== weechat_hdata_new_list
+
+_WeeChat バージョン 0.3.6 以上で利用可。_
+
+hdata に新しいリストへのポインタを作成。
+
+プロトタイプ:
+
+[source,C]
+----
+void weechat_hdata_new_list (struct t_hdata *hdata, const char *name, void *pointer);
+----
+
+引数:
+
+* 'hdata': hdata へのポインタ
+* 'name': 変数名
+* 'pointer': リストへのポインタ
+
+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_new_list (hdata, "last_buffer", &last_buffer);
+----
+
+コードを短くするためにはマクロ "WEECHAT_HDATA_LIST" を使います。
+
+[source,C]
+----
+WEECHAT_HDATA_LIST(buffers);
+WEECHAT_HDATA_LIST(last_buffer);
+----
+
+[NOTE]
+スクリプト API ではこの関数を利用できません。
+
+==== weechat_hdata_get
+
+_WeeChat バージョン 0.3.6 以上で利用可。_
+
+WeeChat 及びプラグイン構造体に対する hdata を返す。
+
+[NOTE]
+hdata はデータを含みません、hdata
+は構造体における変数の位置を含むただのハッシュテーブル。つまりデータを読み出すためには
+hdata と WeeChat 及びプラグインへのポインタが必要です。
+
+プロトタイプ:
+
+[source,C]
+----
+struct t_hdata *weechat_hdata_get (const char *hdata_name);
+----
+
+引数:
+
+* 'hdata_name': hdata の名前
+
+戻り値:
+
+* hdata へのポインタ、エラーが起きた場合は NULL
+
+hdata のリスト:
+
+include::autogen/plugin_api/hdata.txt[]
+
+C 言語での使用例:
+
+[source,C]
+----
+struct t_hdata *hdata = weechat_hdata_get ("irc_server");
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+hdata = weechat.hdata_get(hdata_name)
+
+# example
+hdata = weechat.hdata_get("irc_server")
+----
+
+==== weechat_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]
+----
+# prototype
+offset = weechat.hdata_get_var_offset(hdata, name)
+
+# example
+offset = weechat.hdata_get_var_offset(hdata, "name")
+----
+
+==== weechat_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:
+ /* variable not found */
+ break;
+}
+----
+
+[NOTE]
+スクリプト API ではこの関数を利用できません。
+
+==== weechat_hdata_get_var_type_string
+
+_WeeChat バージョン 0.3.6 以上で利用可。_
+
+変数の型を (文字列で) 返す。
+
+プロトタイプ:
+
+[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]
+----
+# prototype
+type = weechat.hdata_get_var_type_string(hdata, name)
+
+# example
+weechat.prnt("", "type = %s" % weechat.hdata_get_var_type_string("name"))
+----
+
+==== weechat_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 および plugin オブジェクトへのポインタ
+* 'name': 変数名
+
+戻り値:
+
+* 配列変数のサイズ、配列変数でない場合とエラーが起きた場合は -1
+
+C 言語での使用例:
+
+[source,C]
+----
+int array_size = weechat_hdata_get_var_array_size (hdata, pointer, "name");
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+array_size = weechat.hdata_get_var_array_size(hdata, pointer, name)
+
+# example
+array_size = weechat.hdata_get_var_array_size(hdata, pointer, "name")
+----
+
+==== weechat_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 および plugin オブジェクトへのポインタ
+* 'name': 変数名
+
+戻り値:
+
+* 配列変数のサイズの文字列、配列変数でない場合とエラーが起きた場合は
+ NULL
+
+C 言語での使用例:
+
+[source,C]
+----
+const char *array_size = weechat_hdata_get_var_array_size_string (hdata, pointer, "name");
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+array_size = weechat.hdata_get_var_array_size_string(hdata, pointer, name)
+
+# example
+array_size = weechat.hdata_get_var_array_size_string(hdata, pointer, "name")
+----
+
+==== weechat_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
+
+C 言語での使用例:
+
+[source,C]
+----
+weechat_printf (NULL, "hdata = %s", weechat_hdata_get_var_hdata (hdata, "name"));
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+hdata_name = weechat.hdata_get_var_hdata(hdata, name)
+
+# example
+weechat.prnt("", "hdata = %s" % weechat.hdata_get_var_hdata(hdata, "name"))
+----
+
+==== weechat_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 および plugin オブジェクトへのポインタ
+* '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 ではこの関数を利用できません。
+
+==== weechat_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 および plugin オブジェクトへのポインタ
+* 'name': 変数名
+
+戻り値:
+
+* 変数の内容へのポインタ、エラーが起きた場合は 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 ではこの関数を利用できません。
+
+==== weechat_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]
+----
+# prototype
+list = weechat.hdata_get_list(hdata, name)
+
+# example
+hdata = weechat.hdata_get("buffer")
+buffers = weechat.hdata_get_list(hdata, "gui_buffers")
+----
+
+==== weechat_hdata_check_pointer
+
+_WeeChat バージョン 0.3.7 以上で利用可。_
+
+hdata とリストへのポインタを使ってポインタの妥当性を確認する。
+
+プロトタイプ:
+
+[source,C]
+----
+int weechat_hdata_check_pointer (struct t_hdata *hdata, void *list, void *pointer);
+----
+
+引数:
+
+* 'hdata': hdata へのポインタ
+* '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))
+{
+ /* valid pointer */
+}
+else
+{
+ /* invalid pointer */
+}
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+rc = weechat.hdata_check_pointer(hdata, list, pointer)
+
+# example
+hdata = weechat.hdata_get("buffer")
+if weechat.hdata_check_pointer(hdata, weechat.hdata_get_list(hdata, "gui_buffers"), ptr_buffer):
+ # valid pointer
+ # ...
+else:
+ # invalid pointer
+ # ...
+----
+
+==== weechat_hdata_move
+
+_WeeChat バージョン 0.3.6 以上で利用可。_
+
+リスト内の他の要素にポインタを移動する。
+
+プロトタイプ:
+
+[source,C]
+----
+void *weechat_hdata_move (struct t_hdata *hdata, void *pointer, int count);
+----
+
+引数:
+
+* 'hdata': hdata へのポインタ
+* 'pointer': WeeChat および plugin オブジェクトへのポインタ
+* 'count': 移動を実行する回数
+ (負および正の整数、ゼロは禁止)
+
+戻り値:
+
+* 移動先の要素へのポインタ、エラーが起きた場合は NULL
+
+C 言語での使用例:
+
+[source,C]
+----
+struct t_hdata *hdata = weechat_hdata_get ("buffer");
+struct t_gui_buffer *buffer = weechat_buffer_search_main ();
+
+/* move to next buffer, 2 times */
+buffer = weechat_hdata_move (hdata, buffer, 2);
+
+/* move to previous buffer */
+if (buffer)
+ buffer = weechat_hdata_move (hdata, buffer, -1);
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+pointer = weechat.hdata_move(hdata, pointer, count)
+
+# example
+hdata = weechat.hdata_get("buffer")
+buffer = weechat.buffer_search_main()
+
+# move to next buffer, 2 times
+buffer = weechat.hdata_move(hdata, buffer, 2)
+
+# move to previous buffer
+if buffer:
+ buffer = weechat.hdata_move(hdata, buffer, -1)
+----
+
+==== weechat_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 および plugin オブジェクトへのポインタ
+* 'search': 評価する式、式中のデフォルトポインタは hdata の名前
+ (デフォルトポインタはリストに含まれる各要素で置換される); 式に関する情報は
+ 'WeeChat ユーザガイド' のコマンド `/eval` を参照
+* 'move': 検索に失敗した後に移動を実行する回数
+ (負および正の整数、ゼロは禁止)
+
+戻り値:
+
+* 見つかった要素へのポインタ、見つからなかった場合は NULL
+
+C 言語での使用例:
+
+[source,C]
+----
+struct t_hdata *hdata = weechat_hdata_get ("irc_server");
+void *servers = weechat_hdata_get (hdata, "irc_servers");
+
+/* search irc server with name "freenode" */
+void *server = weechat_hdata_search (hdata, servers, "${irc_server.name} == freenode", 1);
+if (server)
+{
+ /* ... */
+}
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+pointer = weechat.hdata_search(hdata, pointer, search, count)
+
+# example
+hdata = weechat.hdata_get("irc_server")
+servers = weechat.hdata_get_list(hdata, "irc_servers")
+
+# search irc server with name "freenode"
+server = weechat.hdata_search(hdata, servers, "${irc_server.name} == freenode", 1)
+if server:
+ # ...
+----
+
+==== weechat_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 および plugin オブジェクトへのポインタ
+* 'name': 変数名 (必ず"文字型"であること); 配列の場合、"N|name"
+ のように名前を指定することが可能。ここで N は配列のインデックス (1 番目は 0)、例: "2|name"
+
+戻り値:
+
+* 文字型変数の値
+
+C 言語での使用例:
+
+[source,C]
+----
+weechat_printf (NULL, "letter = %c", weechat_hdata_char (hdata, pointer, "letter"));
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+value = weechat.hdata_char(hdata, pointer, name)
+
+# example
+weechat.prnt("", "letter = %c" % weechat.hdata_char(hdata, pointer, "letter"))
+----
+
+==== weechat_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 および plugin オブジェクトへのポインタ
+* 'name': 変数名 (必ず"整数型"であること); 配列の場合、"N|name"
+ のように名前を指定することが可能。ここで N は配列のインデックス (1 番目は 0)、例: "2|name"
+
+戻り値:
+
+* 整数型変数の値
+
+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]
+----
+# prototype
+value = weechat.hdata_integer(hdata, pointer, name)
+
+# example
+hdata = weechat.hdata_get("buffer")
+buffer = weechat.buffer_search_main()
+weechat.prnt("", "number = %d" % weechat.hdata_integer(hdata, buffer, "number"))
+----
+
+==== weechat_hdata_long
+
+_WeeChat バージョン 0.3.6 以上で利用可。_
+
+hdata を使って構造体に含まれる long 型変数の値を返す。
+
+プロトタイプ:
+
+[source,C]
+----
+long weechat_hdata_long (struct t_hdata *hdata, void *pointer, const char *name);
+----
+
+引数:
+
+* 'hdata': hdata へのポインタ
+* 'pointer': WeeChat および plugin オブジェクトへのポインタ
+* 'name': 変数名 (必ず "long 型"であること); 配列の場合、"N|name"
+ のように名前を指定することが可能。ここで N は配列のインデックス (1 番目は 0)、例: "2|name"
+
+戻り値:
+
+* long 変数の値
+
+C 言語での使用例:
+
+[source,C]
+----
+weechat_printf (NULL, "longvar = %ld", weechat_hdata_long (hdata, pointer, "longvar"));
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+value = weechat.hdata_long(hdata, pointer, name)
+
+# example
+weechat.prnt("", "longvar = %ld" % weechat.hdata_long(hdata, pointer, "longvar"))
+----
+
+==== weechat_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 および plugin オブジェクトへのポインタ
+* 'name': 変数名 (必ず"文字列型"であること); 配列の場合、"N|name"
+ のように名前を指定することが可能。ここで N は配列のインデックス (1 番目は 0)、例: "2|name"
+
+戻り値:
+
+* 文字列変数の値
+
+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]
+----
+# prototype
+value = weechat.hdata_string(hdata, pointer, name)
+
+# example
+hdata = weechat.hdata_get("buffer")
+buffer = weechat.buffer_search_main()
+weechat.prnt("", "name = %s" % weechat.hdata_string(hdata, buffer, "name"))
+----
+
+==== weechat_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 および plugin オブジェクトへのポインタ
+* 'name': 変数名 (必ず"ポインタ型"であること); 配列の場合、"N|name"
+ のように名前を指定することが可能。ここで N は配列のインデックス (1 番目は 0)、例: "2|name"
+
+戻り値:
+
+* ポインタ型変数の値
+
+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]
+----
+# prototype
+value = weechat.hdata_pointer(hdata, pointer, name)
+
+# example
+hdata = weechat.hdata_get("buffer")
+buffer = weechat.buffer_search_main()
+weechat.prnt("", "lines = %lx" % weechat.hdata_pointer(hdata, buffer, "lines"))
+----
+
+==== weechat_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 および plugin オブジェクトへのポインタ
+* 'name': 変数名 (必ず"時刻型"であること); 配列の場合、"N|name"
+ のように名前を指定することが可能。ここで N は配列のインデックス (1 番目は 0)、例: "2|name"
+
+戻り値:
+
+* 時刻型変数の値
+
+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]
+----
+# prototype
+value = weechat.hdata_time(hdata, pointer, name)
+
+# example
+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))))
+----
+
+==== weechat_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 および plugin オブジェクトへのポインタ
+* 'name': 変数名 (必ず"ハッシュテーブル型"であること); 配列の場合、"N|name"
+ のように名前を指定することが可能。ここで N は配列のインデックス (1 番目は 0)、例: "2|name"
+
+戻り値:
+
+* ハッシュテーブル型変数の値 (ハッシュテーブルへのポインタ)
+
+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]
+----
+# prototype
+hashtable = weechat.hdata_hashtable(hdata, pointer, name)
+
+# example
+hdata = weechat.hdata_get("buffer")
+buffer = weechat.buffer_search_main()
+hash = weechat.hdata_hashtable(hdata, buffer, "local_variables")
+weechat.prnt("", "local variables in core buffer:")
+for key in hash:
+ weechat.prnt("", " %s == %s" % (key, hash[key]))
+----
+
+==== weechat_hdata_set
+
+_WeeChat バージョン 0.3.9 以上で利用可。_
+
+hdata の変数に新しい値を設定。
+
+[NOTE]
+変数の更新を許可している場合に、この関数呼び出して良いのは update
+コールバックの中だけです (<<_weechat_hdata_new,weechat_hdata_new>>
+と <<_weechat_hdata_update,weechat_hdata_update>> を参照)
+
+プロトタイプ:
+
+[source,C]
+----
+int weechat_hdata_set (struct t_hdata *hdata, void *pointer, const char *name, const char *value);
+----
+
+引数:
+
+* 'hdata': hdata へのポインタ
+* 'pointer': WeeChat および plugin オブジェクトへのポインタ
+* 'name': 変数名 (許可されている型: 文字型、整数型、long
+ 型、文字列型、ポインタ型、時刻型)
+* 'value': 変数の新しい値
+
+戻り値:
+
+* 成功した場合は 1、エラーが起きた場合は 0
+
+C 言語での使用例:
+
+[source,C]
+----
+weechat_hdata_set (hdata, pointer, "message", "test");
+----
+
+[NOTE]
+スクリプト API ではこの関数を利用できません。
+
+==== weechat_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 および plugin オブジェクトへのポインタ
+* 'hashtable': 更新する変数:
+ キーは変数の名前、値は変数の新しい値
+ (キーと値は文字列)、以下の特別なキーを使うことができます:
+** キー `__create_allowed` (値は任意): 構造体の作製を許可する場合は
+ 1、許可しない場合は 0 を返す _(WeeChat バージョン 0.4.0 以上で利用可)_
+** キー `__delete_allowed` (値は任意): 構造体の削除を許可する場合は
+ 1、許可しない場合は 0 を返す
+** キー `__update_allowed` 、値は変数の名前: この変数の更新を許可する場合は
+ 1、許可しない場合は 0 を返す
+** キー `__delete` (値は任意): 構造体を削除 (許可されている場合)
+
+戻り値:
+
+* 更新された変数の個数
+
+C 言語での使用例:
+
+[source,C]
+----
+/* subtract one hour on last message displayed in current buffer */
+
+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]
+----
+# prototype
+count = weechat.hdata_update(hdata, pointer, hashtable)
+
+# example: subtract one hour on last message displayed in current buffer
+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) })
+----
+
+==== weechat_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 に含まれる変数のキーのリストを含む文字列
+ (フォーマット: "key1,key2,key3")
+** 'var_values': hdata に含まれる変数の値のリストを含む文字列
+ (フォーマット: "value1,value2,value3")
+** 'var_keys_values': hdata に含まれる変数のキーと値のリストを含む文字列
+ (フォーマット: "key1:value1,key2:value2,key3:value3")
+** 'var_prev':
+ 構造体に含まれる変数の名前、構造体はリスト内の 1 つ前の要素へのポインタ
+** 'var_next':
+ 構造体に含まれる変数の名前、構造体はリスト内の 1 つ後の要素へのポインタ
+** 'list_keys': hdata に含まれるリストのキーのリストを含む文字列
+ (フォーマット: "key1,key2,key3")
+** 'list_values': hdata に含まれるリストの値のリストを含む文字列
+ (フォーマット: "value1,value2,value3")
+** 'list_keys_values': hdata に含まれるリストのキーと値のリストを含む文字列
+ (フォーマット: "key1:value1,key2:value2,key3:value3")
+
+戻り値:
+
+* プロパティの文字列値
+
+C 言語での使用例:
+
+[source,C]
+----
+weechat_printf (NULL, "variables in hdata: %s", weechat_hdata_get_string (hdata, "var_keys"));
+weechat_printf (NULL, "lists in hdata: %s", weechat_hdata_get_string (hdata, "list_keys"));
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+value = weechat.hdata_get_string(hdata, property)
+
+# example
+weechat.prnt("", "variables in hdata: %s" % weechat.hdata_get_string(hdata, "var_keys"))
+weechat.prnt("", "lists in hdata: %s" % weechat.hdata_get_string(hdata, "list_keys"))
+----
+
+[[upgrade]]
+=== アップグレード
+
+WeeChat をアップグレードする (コマンド "/upgrade") 関数。
+
+==== weechat_upgrade_new
+
+アップグレード用のファイルを作成または読み込み。
+
+プロトタイプ:
+
+[source,C]
+----
+struct t_upgrade_file *weechat_upgrade_new (const char *filename, int write);
+----
+
+引数:
+
+* 'filename': ファイルの名前 (WeeChat
+ はこの名前に拡張子 ".upgrade" を追加します)
+* 'write':
+** '1': ファイルを作成 (書き込みモード、アップグレード前)
+** '0': ファイルを読み込む (アップグレード後)
+
+戻り値:
+
+* アップグレードファイルへのポインタ
+
+C 言語での使用例:
+
+[source,C]
+----
+struct t_upgrade_file *upgrade_file = weechat_upgrade_new ("my_file", 1);
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+upgrade_file = weechat.upgrade_new(filename, write)
+
+# example
+upgrade_file = weechat.upgrade_new("my_file", 1)
+----
+
+==== weechat_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': オブジェクトの識別番号
+* 'infolist': ファイルに書き込むインフォリスト
+
+戻り値:
+
+* 成功した場合は 1、エラーが起きた場合は 0
+
+C 言語での使用例:
+
+[source,C]
+----
+if (weechat_upgrade_write_object (upgrade_file, 1, &infolist))
+{
+ /* ok */
+}
+else
+{
+ /* error */
+}
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+rc = weechat.upgrade_write_object(upgrade_file, object_id, infolist)
+
+# example
+weechat.upgrade_write_object(upgrade_file, 1, infolist)
+----
+
+==== weechat_upgrade_read
+
+アップグレードファイルを読み込む。
+
+プロトタイプ:
+
+[source,C]
+----
+int weechat_upgrade_read (struct t_upgrade_file *upgrade_file,
+ int (*callback_read)(void *data,
+ struct t_upgrade_file *upgrade_file,
+ int object_id,
+ struct t_infolist *infolist),
+ void *callback_read_data);
+----
+
+引数:
+
+* 'upgrade_file': アップグレードファイルへのポインタ
+* 'callback_read': アップグレードファイル内の各オブジェクトを読み込む際に呼び出す関数
+ 引数と戻り値:
+** 'void *data': ポインタ
+** 'struct t_upgrade_file *upgrade_file': アップグレードファイルへのポインタ
+** 'int object_id': オブジェクトの識別番号
+** 'struct t_infolist *infolist': オブジェクトの内容を含むインフォリスト
+** 戻り値:
+*** 'WEECHAT_RC_OK'
+*** 'WEECHAT_RC_ERROR'
+* 'callback_read_data': WeeChat が read
+ コールバックを呼び出す際にコールバックに渡すポインタ
+
+戻り値:
+
+* 成功した場合は 1、エラーが起きた場合は 0
+
+C 言語での使用例:
+
+[source,C]
+----
+int
+my_upgrade_read_cb (struct t_upgrade_file *upgrade_file,
+ int object_id,
+ struct t_infolist *infolist)
+{
+ /* read variables... */
+ return WEECHAT_RC_OK;
+}
+
+weechat_upgrade_read (upgrade_file, &my_upgrade_read_cb, NULL);
+----
+
+スクリプト (Python) での使用例:
+
+[source,python]
+----
+# prototype
+rc = weechat.upgrade_read(upgrade_file, callback_read, callback_read_data)
+
+# example
+def my_upgrade_read_cb(upgrade_file, object_id, infolist):
+ # read variables...
+ return weechat.WEECHAT_RC_OK
+
+weechat.upgrade_read(upgrade_file, "my_upgrade_read_cb", ""))
+----
+
+==== weechat_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]
+----
+# prototype
+weechat.upgrade_close(upgrade_file)
+
+# example
+weechat.upgrade_close(upgrade_file)
+----
diff --git a/doc/ja/weechat_user.ja.txt b/doc/ja/weechat_user.ja.txt
index 1010c245a..46b4c5d23 100644
--- a/doc/ja/weechat_user.ja.txt
+++ b/doc/ja/weechat_user.ja.txt
@@ -19,8 +19,7 @@ WeeChat (Wee Enhanced Environment for Chat) はフリーのチャットクライ
主な特徴:
-// TRANSLATION MISSING
-* multi-protocols: IRC and Jabber (with script jabber.py or bitlbee/minbif)
+* マルチプロトコル: IRC 及び Jabber (jabber.py スクリプトや bitlbee/minbif が必要)
* 複数のサーバへの接続 (SSL、IPv6、プロキシをサポート)
* コンパクト、高速、軽量
* プラグインとスクリプトでカスタマイズや拡張が可能
@@ -447,9 +446,8 @@ WeeChat 内で `/set` コマンドにパラメータを付けて設定します
WeeChat を起動したターミナルの例:
-// TRANSLATION MISSING
....
- ▼ bar "title"
+ ▼ "title" バー
┌───────────────────────────────────────────────────────────────────────────┐
│Welcome to #test, this is a test channel │
│12:52:27 --> | Flashy (flashcode@weechat.org) has joined #test │@Flashy│
@@ -472,7 +470,7 @@ WeeChat を起動したターミナルの例:
│[12:55] [6] [irc/freenode] 3:#test(+n){4}* [H: 4:#abc(2,5), 6] │
│[@Flashy(i)] hi peter!█ │
└───────────────────────────────────────────────────────────────────────────┘
- ▲ bars "status" and "input" bar "nicklist" ▲
+ ▲ "status" と "input" バー "nicklist" バー ▲
....
スクリーンは以下のエリアから成ります:
@@ -499,8 +497,7 @@ WeeChat を起動したターミナルの例:
| buffer_name | `#test` | 現在のバッファの名前
| buffer_modes | `+n` | IRC チャンネルモード
| buffer_nicklist_count | `{4}` | ニックネームリスト中のニックネームの数
-// TRANSLATION MISSING
-| buffer_zoom | ! | `!` means the merged buffer is zoomed (only this one is displayed), empty value means all merged buffers are displayed
+| buffer_zoom | ! | `!` はマージされたバッファがズームされている状態 (ズームされたものだけを表示する状態) を示します、空の場合はすべてのマージされたバッファが表示されていることを示します
| buffer_filter | `*` | フィルタ表示: `*` の場合いくつかの行がフィルタされ (隠され) ます、空の場合すべての行が表示されます。
| lag | `[Lag: 2.5]` | 遅延秒表示 (遅延が短い場合は非表示)
| hotlist | `[H: 4:#abc(2,5), 6]` | 変化のあったバッファのリスト (未読メッセージ) (例では、'#abc' に 2 個のハイライトと 5 個の未読メッセージ、6 番目のバッファに 1 個の未読メッセージがあることを意味します。)
@@ -514,8 +511,7 @@ WeeChat を起動したターミナルの例:
|===
| アイテム | 例 | 説明
| input_paste | `[Paste 7 lines ? [ctrl-Y] Yes [ctrl-N] No]` | 行をペーストする場合にユーザへ行われる質問
-// TRANSLATION MISSING
-| input_prompt | `[@Flashy]` | Input prompt, for irc: nick and modes (mode "+i" means invisible on freenode)
+| input_prompt | `[@Flashy]` | 入力プロンプト、irc の場合: ニックネームとモード (freenode では "+i" モードは不可視状態を意味します)
| away | `(away)` | 離席状態表示
| input_search | `[Search (~ str,msg)]` | 検索インジケータ ("`~`": 大文字小文字を区別しない、"`==`": 大文字小文字を区別する、"`str`": 検索文字列、"`regex`": 検索正規表現、"`msg`": メッセージ部分から検索、"`pre`": プレフィックス部分から検索、"`pre\|msg`": プレフィックス部分とメッセージ部分から検索)
| input_text | `hi peter!` | 入力テキスト
@@ -542,9 +538,8 @@ WeeChat を起動したターミナルの例:
水平方向分割の例 (`/window splith`):
-// TRANSLATION MISSING
....
- ▼ window #2 (buffer #4)
+ ▼ ウィンドウ #2 (バッファ #4)
┌───────────────────────────────────────────────────────────────────────────┐
│Welcome to #abc │
│12:55:12 Max | hi │@Flashy│
@@ -570,12 +565,11 @@ WeeChat を起動したターミナルの例:
│[12:55] [6] [irc/freenode] 3:#test(+n){4} │
│[@Flashy] hi peter!█ │
└───────────────────────────────────────────────────────────────────────────┘
- ▲ window #1 (buffer #3)
+ ▲ ウィンドウ #1 (バッファ #3)
....
垂直方向分割の例 (`/window splitv`):
-// TRANSLATION MISSING
....
┌───────────────────────────────────────────────────────────────────────────┐
│Welcome to #test │Welcome to #abc │
@@ -599,14 +593,13 @@ WeeChat を起動したターミナルの例:
│[12:55] [irc/oftc] 3:#test(+n){4} │[12:55] [irc/oftc] 4:#abc(+n){2} │
│[@Flashy] hi peter!█ │[@Flashy] │
└───────────────────────────────────────────────────────────────────────────┘
- ▲ window #1 (buffer #3) ▲ window #2 (buffer #4)
+ ▲ ウィンドウ #1 (バッファ #3) ▲ ウィンドウ #2 (バッファ #4)
....
垂直方向 + 水平方向分割の例:
-// TRANSLATION MISSING
....
- ▼ window #3 (buffer #5)
+ ▼ ウィンドウ #3 (バッファ #5)
┌───────────────────────────────────────────────────────────────────────────┐
│Welcome to #test │Welcome to #def │
│12:54:15 peter | hey! │@Flashy│12:55:42 @Flashy | hi │@Flashy│
@@ -632,7 +625,7 @@ WeeChat を起動したターミナルの例:
│[12:55] [irc/oftc] 3:#test(+n){4} │[12:55] [irc/oftc] 4:#abc(+n){2} │
│[@Flashy] hi peter!█ │[@Flashy] │
└───────────────────────────────────────────────────────────────────────────┘
- ▲ window #1 (buffer #3) ▲ window #2 (buffer #4)
+ ▲ ウィンドウ #1 (バッファ #3) ▲ ウィンドウ #2 (バッファ #4)
....
[[bars]]
@@ -1157,8 +1150,7 @@ WeeChat はデフォルトマウスイベントの多くを定義しています
| 修飾キー | 説明
| ctrl | key[ctrl] キー
| alt | key[alt] キー
-// TRANSLATION MISSING
-| ctrl-alt | Keys key[ctrl-]key[alt]
+| ctrl-alt | key[ctrl-]key[alt] キー
|===
ボタン/ホイールのリスト:
@@ -1264,9 +1256,8 @@ key[ctrl-c,c], key[xx]::
key[ctrl-c,c], key[xx]key[,]key[yy]::
テキスト表示色を `xx` に、背景色を `yy` に (以下の色リストを参照)
-// TRANSLATION MISSING
key[ctrl-c,i]::
- italic text
+ テキストをイタリック体に
key[ctrl-c,o]::
テキスト表示色と属性をリセット
@@ -1435,8 +1426,7 @@ WeeChat はスクリーンに色が表示された時点で色ペアを動的に
* `*` : テキストを太字に
* `!` : テキストを反転
-// TRANSLATION MISSING
-* `/` : italic
+* `/` : テキストをイタリック体に
* `_` : テキストに下線を引く
* `|` : 属性を保持:
色を変えた際に太字/反転/下線属性をリセットしない
@@ -2523,13 +2513,11 @@ IRC プロキシを設定した場合には "freenode:mypass") で 8000 番ポ
Relay プラグインは WeeChat プロトコルを使ってリモートインターフェイスに対してデータを送信できます。
-// TRANSLATION MISSING
-You can connect with a remote interface, see the list on download page:
+リモートインターフェイスを使って接続できます、ダウンロードページのリストを御覧ください:
http://weechat.org/download
[IMPORTANT]
-// TRANSLATION MISSING
-WeeChat itself can NOT connect to another WeeChat with this protocol.
+このプロトコルを使った場合 WeeChat から他の WeeChat に接続することはできません。
例: