このマニュアルは WeeChat チャットクライアントについての文書で、WeeChat の一部です。

この文書の最新版を見るには以下のページを確認して下さい: https://weechat.org/doc

1. はじめに

WeeChat (Wee Enhanced Environment for Chat) は無料のチャットクライアントで、高速、軽量、多くのオペレーティングシステムで動くように設計されています。

このマニュアルは WeeChat プラグイン API についての文書で、C 言語プラグインはこの API を使って WeeChat の中核部と通信しています。

2. WeeChat プラグイン

プラグインは C 言語のプログラムであり、インターフェイスが定義する WeeChat 関数を呼び出すことができます。

この C 言語プログラムはコンパイルの際に WeeChat のソースを必要としません、WeeChat は /plugin コマンドでこのプログラムを動的に読み込むことができます。

プラグインを動的にオペレーティングシステムに読み込ませるために、プラグインは必ずダイナミックライブラリにしてください。ファイルの拡張子は GNU/Linux では ".so"、Windows では ".dll" です。

プラグインでは必ず "weechat-plugin.h" ファイルをインクルードしてください (WeeChat ソースコードに含まれています)。このファイルでは WeeChat と通信する際に使う構造体や型が定義されています。

2.1. マクロ

プラグインでは必ず以下のマクロを使ってください (いくつかの変数を定義するために必要です):

WEECHAT_PLUGIN_NAME("name")

プラグイン名

WEECHAT_PLUGIN_DESCRIPTION("description")

プラグインの短い説明

WEECHAT_PLUGIN_VERSION("1.0")

プラグインのバージョン番号

WEECHAT_PLUGIN_LICENSE("GPL3")

プラグインのライセンス

2.2. 重要な関数

プラグインでは必ず以下の 2 つの関数を使ってください:

  • weechat_plugin_init

  • weechat_plugin_end

2.2.1. weechat_plugin_init

WeeChat はプラグインを読み込む際にこの関数を呼び出します。

プロトタイプ:

引数:

  • plugin: WeeChat プラグイン構造体へのポインタ

  • argc: プラグインに対する引数の数 (ユーザがコマンドラインで指定)

  • argv: プラグインに対する引数

戻り値:

  • WEECHAT_RC_OK 成功した場合 (プラグインを読み込みます)

  • WEECHAT_RC_ERROR エラーが起きた場合 (プラグインを読み込みません)

2.2.2. weechat_plugin_end

WeeChat プラグインを再読み込みする際にこの関数を呼び出します。

プロトタイプ:

引数:

  • plugin: WeeChat プラグイン構造体へのポインタ

戻り値:

  • WEECHAT_RC_OK 成功した場合

  • WEECHAT_RC_ERROR エラーが起きた場合

2.3. プラグインのコンパイル

コンパイルするために WeeChat のソースは不要で、weechat-plugin.h ファイルだけが必要です。

1 つのファイル "toto.c" からなるプラグインは以下のようにコンパイルします (GNU/Linux の場合):

$ gcc -fPIC -Wall -c toto.c
$ gcc -shared -fPIC -o libtoto.so toto.o

2.4. プラグインを読み込む

libtoto.so ファイルをシステムのプラグインディレクトリ (例えば /usr/local/lib/weechat/plugins) またはユーザのプラグインディレクトリ (例えば /home/xxx/.weechat/plugins) にコピーしてください。

WeeChat の中で:

/plugin load toto

2.5. プラグインの例

コマンド /double を追加するプラグインの例: 引数を 2 倍して現在のバッファに表示するか、コマンドを 2 回実行する (これは実用的なコマンドというよりも、ただの例です!):

3. プラグイン API

以下の章では API 関数をカテゴリごとに説明しています。

それぞれの関数について、以下の内容が記載されています:

  • 関数の説明、

  • C 言語のプロトタイプ、

  • 引数の詳細、

  • 戻り値、

  • C 言語での使用例、

  • Python スクリプトでの使用例 (他のスクリプト言語を使う場合も文法は似ています)。

3.1. プラグイン

プラグインに関する情報を取得する関数。

3.1.1. weechat_plugin_get_name

プラグインの名前を取得。

プロトタイプ:

引数:

  • plugin: WeeChat プラグイン構造体へのポインタ (NULL でも可)

戻り値:

  • プラグインの名前、WeeChat コアの場合は "core" (プラグインへのポインタが NULL の場合)

C 言語での使用例:

スクリプト (Python) での使用例:

3.2. 文字列

以下の多くの文字列関数は標準的な C 言語の関数でも定義されていますが、この API 関数を使うことを推奨します。なぜなら、これらの関数は文字列を UTF-8 とロケールに準じて取り扱うようになっているからです。

3.2.1. weechat_charset_set

新しいプラグインの文字セットを設定する (デフォルトの文字セットは UTF-8 です、このためプラグインで UTF-8 を使う場合は、この関数を呼び出す必要はありません。

プロトタイプ:

引数:

  • charset: 新たに利用する文字セット

C 言語での使用例:

スクリプト (Python) での使用例:

3.2.2. weechat_iconv_to_internal

文字列の文字セットを WeeChat の内部文字セット (UTF-8) に変換。

プロトタイプ:

引数:

  • charset: 変換元の文字列の文字セット

  • string: 変換元の文字列

戻り値:

  • 文字セットを変換した文字列 (使用後には必ず "free" を呼び出して領域を開放してください)

C 言語での使用例:

スクリプト (Python) での使用例:

3.2.3. weechat_iconv_from_internal

文字列の文字セットを WeeChat の内部文字セット (UTF-8) から別の文字セットに変換。

プロトタイプ:

引数:

  • charset: 変換先の文字列の文字セット

  • string: 変換元の文字列

戻り値:

  • 文字セットを変換した文字列 (使用後には必ず "free" を呼び出して領域を開放してください)

C 言語での使用例:

スクリプト (Python) での使用例:

3.2.4. weechat_gettext

翻訳済み文字列を返す (設定言語に依存)。

プロトタイプ:

引数:

  • string: 翻訳元の文字列

戻り値:

  • 翻訳済み文字列

C 言語での使用例:

スクリプト (Python) での使用例:

3.2.5. weechat_ngettext

count 引数を元に単数形または複数形で、翻訳済み文字列を返す。

プロトタイプ:

引数:

  • string: 翻訳元の文字列、単数形

  • plural: 翻訳元の文字列、複数形

  • count: 単数形と複数形のどちらを返すかの判断に使います (選択は設定言語に依存)

戻り値:

  • 翻訳済みの文字列

C 言語での使用例:

スクリプト (Python) での使用例:

3.2.6. weechat_strndup

複製した文字列を最大で length 文字分返す。

プロトタイプ:

引数:

  • string: 複製元の文字列

  • length: 複製する文字列の最大文字数

戻り値:

  • 複製した文字列 (使用後には必ず "free" を呼び出して領域を開放してください)

C 言語での使用例:

Note
スクリプト API ではこの関数を利用できません。

3.2.7. weechat_string_tolower

UTF-8 文字列を小文字に変換。

プロトタイプ:

引数:

  • string: 変換元の文字列

C 言語での使用例:

Note
スクリプト API ではこの関数を利用できません。

3.2.8. weechat_string_toupper

UTF-8 文字列を大文字に変換。

プロトタイプ:

引数:

  • string: 変換元の文字列

C 言語での使用例:

Note
スクリプト API ではこの関数を利用できません。

3.2.9. weechat_strcasecmp

バージョン 1.0 で更新。

ロケールと大文字小文字を無視して文字列を比較。

プロトタイプ:

引数:

  • string1: 1 番目の比較対象の文字列

  • string2: 2 番目の比較対象の文字列

戻り値:

  • string1 < string2 の場合は -1

  • string1 == string2 の場合は 0

  • string1 > string2 の場合は 1

C 言語での使用例:

Note
スクリプト API ではこの関数を利用できません。

3.2.10. weechat_strcasecmp_range

WeeChat バージョン 0.3.7 以上で利用可。バージョン 1.0 で更新。

大文字小文字を無視する文字範囲の幅を使い、ロケールと大文字小文字を無視して文字列を比較。

プロトタイプ:

引数:

  • string1: 1 番目の比較対象の文字列

  • string2: 2 番目の比較対象の文字列

  • range: 大文字小文字を無視する文字範囲の幅、例:

    • 26: "A-Z" を "a-z" のように変換して比較

    • 29: "A-Z [ \ ]" を "a-z { | }" のように変換して比較

    • 30: "A-Z [ \ ] ^" を "a-z { | } ~" のように変換して比較

Note
29 と 30 は IRC など一部のプロトコルで使います。

戻り値:

  • string1 < string2 の場合は -1

  • string1 == string2 の場合は 0

  • string1 > string2 の場合は 1

C 言語での使用例:

Note
スクリプト API ではこの関数を利用できません。

3.2.11. weechat_strncasecmp

バージョン 1.0 で更新。

ロケールと大文字小文字を無視して max 文字だけ文字列を比較。

プロトタイプ:

引数:

  • string1: 1 番目の比較対象の文字列

  • string2: 2 番目の比較対象の文字列

  • max: 比較する文字数の最大値

戻り値:

  • string1 < string2 の場合は -1

  • string1 == string2 の場合は 0

  • string1 > string2 の場合は 1

C 言語での使用例:

Note
スクリプト API ではこの関数を利用できません。

3.2.12. weechat_strncasecmp_range

WeeChat バージョン 0.3.7 以上で利用可。バージョン 1.0 で更新。

大文字小文字を無視する文字範囲の幅を使い、ロケールと大文字小文字を無視して max 文字だけ文字列を比較。

プロトタイプ:

引数:

  • 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 など一部のプロトコルで使います。

戻り値:

  • string1 < string2 の場合は -1

  • string1 == string2 の場合は 0

  • string1 > string2 の場合は 1

C 言語での使用例:

Note
スクリプト API ではこの関数を利用できません。

3.2.13. weechat_strcmp_ignore_chars

バージョン 1.0 で更新。

一部の文字列を無視して、ロケールに依存して (オプションで大文字小文字の区別をしない) 文字列を比較。

プロトタイプ:

引数:

  • string1: 1 番目の比較対象の文字列

  • string2: 2 番目の比較対象の文字列

  • chars_ignored: 無視する文字

  • case_sensitive: 大文字小文字を区別して比較する場合は 1、区別しない場合は 0

戻り値:

  • string1 < string2 の場合は -1

  • string1 == string2 の場合は 0

  • string1 > string2 の場合は 1

C 言語での使用例:

Note
スクリプト API ではこの関数を利用できません。

3.2.14. weechat_strcasestr

ロケールと大文字小文字を区別して文字列を検索。

プロトタイプ:

引数:

  • string: 文字列

  • search: string 内を検索する文字

戻り値:

  • 見つかった文字列へのポインタ、見つからない場合は NULL

C 言語での使用例:

Note
スクリプト API ではこの関数を利用できません。

3.2.15. weechat_strlen_screen

WeeChat バージョン 0.4.2 以上で利用可。

UTF-8 文字列をスクリーン上に表示するために必要なスクリーン幅を返す。非表示文字を 1 文字として数えます (これが weechat_utf8_strlen_screen 関数との違いです)。

プロトタイプ:

引数:

  • string: 文字列

戻り値:

  • UTF-8 文字列をスクリーン上に表示するために必要なスクリーン幅

C 言語での使用例:

スクリプト (Python) での使用例:

3.2.16. weechat_string_match

バージョン 1.0 で更新。

文字列がマスクにマッチするか確認。

プロトタイプ:

引数:

  • string: 文字列

  • mask: ワイルドカード ("*") を含むマスク、各ワイルドカードは文字列中の 0 個またはそれ以上の文字にマッチします

  • case_sensitive: 大文字小文字を区別する場合は 1、区別しない場合は 0

Note
バージョン 1.0 以上では、ワイルドカードをマスクの内部で使うことが可能です (マスクの最初および最後だけではありません)。

戻り値:

  • マスクにマッチした場合は 1、それ以外は 0

C 言語での使用例:

スクリプト (Python) での使用例:

3.2.17. weechat_string_expand_home

WeeChat バージョン 0.3.3 以上で利用可。

文字列が ~ から始まる場合はこれをホームディレクトリで置換。文字列が ~ から始まっていない場合は同じ文字列を返す。

プロトタイプ:

引数:

  • path: パス

戻り値:

  • ~ から始まるパスをホームディレクトリで置換したパス (使用後には必ず "free" を呼び出して領域を開放してください)

C 言語での使用例:

Note
スクリプト API ではこの関数を利用できません。

3.2.18. weechat_string_remove_quotes

文字列の最初と最後から引用符号を削除 (最初の引用符号の前と最後の引用符号の後にある空白文字は無視)。

プロトタイプ:

引数:

  • string: 文字列

  • quotes: 引用符号のリストを含む文字列

戻り値:

  • 最初と最後から引用符号を削除した文字列 (使用後には必ず "free" を呼び出して領域を開放してください)

C 言語での使用例:

Note
スクリプト API ではこの関数を利用できません。

3.2.19. weechat_string_strip

文字列の最初と最後から文字を削除する。

プロトタイプ:

引数:

  • string: 文字列

  • left: 0 以外の場合は左側の文字を削除

  • right: 0 以外の場合は右側の文字を削除

  • chars: 削除する文字を含む文字列

戻り値:

  • 文字を削除した文字列 (使用後には必ず "free" を呼び出して領域を開放してください)

C 言語での使用例:

Note
スクリプト API ではこの関数を利用できません。

3.2.20. weechat_string_convert_escaped_chars

WeeChat バージョン 1.0 以上で利用可。

エスケープ文字を値に変換:

  • \": 二重引用符

  • \\: バックスラッシュ

  • \a: アラート (BEL)

  • \b: バックスペース

  • \e: エスケープ

  • \f: 改ページ

  • \n: 改行

  • \r: キャリッジリターン

  • \t: 水平タブ

  • \v: 垂直タブ

  • \0ooo: 文字の 8 進数表現 (ooo は 0 桁から 3 桁)

  • \xhh: 文字の 16 進数表現 (hh は 1 桁から 2 桁)

  • \uhhhh: ユニコード文字の 16 進数表現 (hhhh は 1 桁から 4 桁)

  • \Uhhhhhhhh: ユニコード文字の 16 進数表現 (hhhhhhhh は 1 桁から 8 桁)

プロトタイプ:

引数:

  • string: 文字列

戻り値:

  • エスケープ文字を値に変換した文字列 (使用後には必ず "free" を呼び出して領域を開放してください)

C 言語での使用例:

Note
スクリプト API ではこの関数を利用できません。

3.2.21. weechat_string_mask_to_regex

マスクから正規表現を作りこれを返す、マスク用の特殊文字は "*" のみ。これ以外の文字はすべてエスケープされます。

プロトタイプ:

引数:

  • mask: マスク

戻り値:

  • 正規表現の文字列 (使用後には必ず "free" を呼び出して領域を開放してください)

C 言語での使用例:

スクリプト (Python) での使用例:

3.2.22. weechat_string_regex_flags

WeeChat バージョン 0.3.7 以上で利用可。

フラグ以降の文字列へのポインタと正規表現をコンパイルするためのフラグ付きマスクを返す

プロトタイプ:

引数:

  • 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 言語での使用例:

Note
スクリプト API ではこの関数を利用できません。

3.2.23. weechat_string_regcomp

WeeChat バージョン 0.3.7 以上で利用可。

文字列の最初に含まれるオプションフラグを使って POSIX 拡張正規表現をコンパイル (フラグのフォーマットについては weechat_string_regex_flags を参照)。

プロトタイプ:

引数:

  • preg: regex_t 構造体へのポインタ

  • regex: POSIX 拡張正規表現

  • default_flags: 以下の値の組み合わせ (man regcomp を参照):

    • REG_EXTENDED

    • REG_ICASE

    • REG_NEWLINE

    • REG_NOSUB

戻り値:

  • regcomp 関数と同じ戻り値 (成功の場合は 0、エラーが起きた場合は 0 以外、man regcomp を参照)

C 言語での使用例:

Note
スクリプト API ではこの関数を利用できません。

3.2.24. weechat_string_has_highlight

ハイライトしたい単語のリストを元に、1 箇所以上マッチする部分があるか調べる。

プロトタイプ:

引数:

  • string: 文字列、

  • highlight_words: ハイライトしたい単語のリスト、コンマ区切り

戻り値:

  • ハイライトしたい単語にマッチする部分が 1 箇所以上ある場合は 1、それ以外は 0

C 言語での使用例:

スクリプト (Python) での使用例:

3.2.25. weechat_string_has_highlight_regex

WeeChat バージョン 0.3.4 以上で利用可。

POSIX 拡張正規表現を使って、文字列中から正規表現にマッチする部分が 1 つ以上あるか確認。
文字列を正規表現にマッチさせるには、マッチする部分の前後に区切り文字 (アルファベット、"-"、"_"、"|" 以外) がなければいけません。

プロトタイプ:

引数:

  • string: 文字列

  • regex: POSIX 拡張正規表現

戻り値:

  • ハイライトしたい正規表現にマッチする部分が 1 箇所以上ある場合は 1、それ以外は 0

C 言語での使用例:

スクリプト (Python) での使用例:

3.2.26. weechat_string_replace

マッチした全ての文字列を別の文字列で置換。

プロトタイプ:

引数:

  • string: 文字列

  • search: マッチさせる文字列

  • replace: search を置き換える文字列

戻り値:

  • searchreplace で置き換えた文字列 (使用後には必ず "free" を呼び出して領域を開放してください)

C 言語での使用例:

Note
スクリプト API ではこの関数を利用できません。

3.2.27. weechat_string_replace_regex

WeeChat バージョン 1.0 以上で利用可。

文字列中のテキストを正規表現、置換先テキスト、任意指定のコールバックを使って置換。

プロトタイプ:

引数:

  • string: 文字列

  • regex: WeeChat 関数 weechat_string_regcomp または regcomp (man regcomp を参照) でコンパイルした正規表現へのポインタ (regex_t 構造体)

  • replace: 置換先テキスト、以下のリファレンスを使うことができます:

    • $0 から $99: 正規表現中の 0 から 99 番目のマッチ部分 (0 はマッチする部分全体、1 から 99 は括弧で括られたグループ)

    • $+: 最後にマッチした部分 (最大の番号を持つマッチ部分)

    • $.*N: * で全ての文字を置換した N 番目 (+ または 0 から 99 を使うことができます) のマッチ部分 (* 文字は空白 (32) から ~ (126) までの任意の文字を使うことができます)

  • reference_char: マッチ部分を参照するための文字 (通常は $)

  • callback: replace に含まれる各リファレンスに対して呼び出される任意指定可能なコールバック (マッチ部分を文字で置換する場合を除く); このコールバックは必ず以下の値を返してください:

    • 新しく割り当てられた文字列: 文字列を置換先テキストとして使います (文字列は使用後に開放されます)

    • NULL: コールバックに渡されたテキストを置換先テキストとして使います (文字列に変更を加えません)

  • callback_data: コールバックを呼び出す際にコールバックに渡すポインタ

戻り値:

  • 置換されたテキストを含む文字、問題が起きた場合は NULL (使用後には必ず "free" を呼び出して領域を開放してください)

C 言語での使用例:

Note
スクリプト API ではこの関数を利用できません。

3.2.28. weechat_string_split

1 つ以上の区切り文字に従って文字列を分割。

プロトタイプ:

引数:

  • string: 分割する文字列

  • separators: 分割に使う区切り文字

  • keep_eol:

    • 0: 区切り文字ごとの文字列に分割

    • 1: 文字列の最初から区切り文字までの文字列に分割 (下の例を参照)

    • 2: 1 と同じだが、文字列の最後から区切り文字を削除しない (WeeChat バージョン 0.3.6 以上で利用可)

  • num_items_max: 分割回数の上限 (0 = 制限なし)

  • num_items: 分割回数を返す整数型変数へのポインタ

戻り値:

  • 文字列の配列、分割に失敗した場合は NULL (使用後には必ず weechat_string_free_split を呼び出して領域を開放してください)

C 言語での使用例:

Note
スクリプト API ではこの関数を利用できません。

3.2.29. weechat_string_split_shell

WeeChat バージョン 1.0 以上で利用可。

コマンドを引数を分割する際にシェルがやるように文字列を分割。

この関数は Python クラス "shlex" の C 言語実装です (ファイル: Python リポジトリの Lib/shlex.py)、参照: http://docs.python.org/3/library/shlex.html

プロトタイプ:

引数:

  • string: 分割する文字列

  • num_items: 分割回数を返す整数型変数へのポインタ

戻り値:

  • 文字列の配列、分割に失敗した場合は NULL (使用後には必ず weechat_string_free_split を呼び出して領域を開放してください)

C 言語での使用例:

Note
スクリプト API ではこの関数を利用できません。

3.2.30. weechat_string_free_split

文字列分割に使用したメモリを開放。

プロトタイプ:

引数:

C 言語での使用例:

Note
スクリプト API ではこの関数を利用できません。

3.2.31. weechat_string_build_with_split_string

分割文字列から文字列を作る。

プロトタイプ:

引数:

  • split_string: 関数 weechat_string_split が返した分割文字列の配列

  • separator: 文字列を分割する区切り文字

戻り値:

  • 分割文字列から作った文字列 (使用後には必ず "free" を呼び出して領域を開放してください)

C 言語での使用例:

Note
スクリプト API ではこの関数を利用できません。

3.2.32. weechat_string_split_command

separator でコマンドのリストを分割 (コマンドに区切り文字を使う場合は "\" でエスケープ)。

プロトタイプ:

引数:

  • command: 分割するコマンド

  • separator: 区切り文字

戻り値:

  • 文字列の配列、分割に失敗した場合は NULL (使用後には必ず weechat_free_split_command を呼び出して領域を開放してください)

C 言語での使用例:

Note
スクリプト API ではこの関数を利用できません。

3.2.33. weechat_string_free_split_command

コマンド分割で使用したメモリを開放。

プロトタイプ:

引数:

C 言語での使用例:

Note
スクリプト API ではこの関数を利用できません。

3.2.34. weechat_string_format_size

ファイルサイズと設定言語に翻訳された単位を書式に当てはめて文字列を作る

プロトタイプ:

引数:

  • size: サイズ (バイト単位)

戻り値:

  • 書式に従う文字列 (使用後には必ず "free" を呼び出して領域を開放してください)

C 言語での使用例:

Note
スクリプト API ではこの関数を利用できません。

3.2.35. weechat_string_remove_color

文字列から WeeChat 色コードを削除。

プロトタイプ:

引数:

  • string: 文字列

  • replacement: NULL または空文字列でなければ、WeeChat 色コードを指定した文字列の 1 文字目で置換、そうでなければ WeeChat 色コードとそれに続く (色に関連する) 文字を文字列から削除

戻り値:

  • 色コードを削除した文字列 (使用後には必ず "free" を呼び出して領域を開放してください)

C 言語での使用例:

スクリプト (Python) での使用例:

3.2.36. weechat_string_encode_base64

WeeChat バージョン 0.3.2 以上で利用可。

文字列を base64 でエンコード。

プロトタイプ:

引数:

  • from: エンコード元文字列

  • length: エンコードする文字列の長さ (例えば strlen(from))

  • to: エンコード結果を保存する文字列へのポインタ (十分な領域を確保してください、結果はエンコード元文字列よりも長くなります)

C 言語での使用例:

Note
スクリプト API ではこの関数を利用できません。

3.2.37. weechat_string_decode_base64

WeeChat バージョン 0.3.2 以上で利用可。

base64 文字列をデコード。

プロトタイプ:

引数:

  • from: デコード元文字列

  • to: デコード結果を保存する文字列へのポインタ (十分な領域を確保してください、結果はデコード元文字列よりも短くなります)

戻り値:

  • *to に保存された文字列の長さ (最後の \0 は数えません)

C 言語での使用例:

Note
スクリプト API ではこの関数を利用できません。

3.2.38. weechat_string_is_command_char

WeeChat バージョン 0.3.2 以上で利用可。

文字列の 1 文字目がコマンド文字か確認 (デフォルトのコマンド文字は /)。

プロトタイプ:

引数:

  • string: 文字列

戻り値:

  • 文字列の 1 文字目がコマンド文字の場合は 1、コマンド文字でない場合は 0

C 言語での使用例:

スクリプト (Python) での使用例:

3.2.39. weechat_string_input_for_buffer

WeeChat バージョン 0.3.2 以上で利用可。

文字列からバッファに入力される部分に対するポインタを返す ("string" 引数の内部へのポインタ)、コマンドの場合は NULL。

プロトタイプ:

引数:

  • string: 文字列

戻り値:

  • "string" の内部へのポインタまたは NULL

C 言語での使用例:

スクリプト (Python) での使用例:

3.2.40. weechat_string_eval_expression

WeeChat バージョン 0.4.0 以上で利用可、バージョン 0.4.2 と 1.1 で更新。

式を評価して文字列として返す。${variable} という書式で書かれた特殊変数は展開されます (以下の表を参照)。

Note
バージョン 1.0 以降、入れ子変数を使えるようになりました、例:

プロトタイプ:

引数:

  • expr: 評価する式 (以下の表を参照)

  • pointers: ポインタを含むハッシュテーブル (キーは文字列、値はポインタ); (現在のウィンドウやバッファへのポインタを持つ) ハッシュテーブルが "window" と "buffer" ポインタを持たない場合はこれらは自動的に追加される (NULL でも可):

    • regex: WeeChat 関数 weechat_string_regcomp または regcomp (man regcomp を参照) でコンパイル済みの正規表現へのポインタ (regex_t 構造体); このオプションは (以下の) ハッシュテーブル構造体 options メンバの regex とよく似ていますが、より高速に動作します

  • extra_vars: 展開される追加変数 (NULL でも可)

  • options: いくつかのオプションを含むハッシュテーブル (キーと値は必ず文字列) (NULL でも可):

    • type: デフォルトの挙動では式中の変数をその値で置換するだけです、その他に以下のタイプを使うことができます:

      • condition: 条件式として式を評価します: 演算子と括弧が使われます、結果はブール値 ("0" または "1") です

    • prefix: 置換する変数のプレフィックス (デフォルト: "${")

    • suffix: 置換する変数のサフィックス (デフォルト: "}")

    • regex: expr のテキストを置換する正規表現 (この場合 expr は評価されません)

    • regex_replace: regex と一緒に使われる置換テキスト、expr に含まれるテキストを置換する (regex_replace は、expr 内で regex 引数にマッチする部分が見つからなくなるまで、毎回評価されます)

戻り値:

  • 評価された式 (使用後には必ず "free" を呼び出して領域を開放してください)、失敗した場合は NULL (式が不正な場合やメモリが不足している場合)

式中で展開される変数のリスト (優先度の高い順、展開順の早いものを上に遅いものを下に):

フォーマット 説明 結果

${name}

extra_vars の変数 name の値に展開

${name}

value

${esc:xxx}
${\xxx}

エスケープ文字を含む文字列

${esc:prefix\tmessage}
${\ua9}

prefix<TAB>message
©

${hide:x,value}

隠す文字を含むテキスト (value に含まれる文字をすべて x で置換)

${hide:*,password}

********

${re:N}

正規表現のキャプチャグループ: 0 = マッチするすべての文字列、1 から 99 = キャプチャされたグループ、+ = 最後にキャプチャされたグループ

${re:1}

test

${color:name}

WeeChat 色コード (色名部分はオプション属性をとることも可能です)

${color:red}red text
${color:*214}bold orange text

red text (赤色で)
bold orange text (太字オレンジ色で)

${info:name}
${indo:name,arguments}

WeeChat またはプラグインのインフォ、weechat_info_get を参照

${info:version}
${info:irc_nick_color_name,foo}

1.0
lightblue

${sec.data.name}

セキュアデータ name の値

${sec.data.freenode_pass}

my_password

${file.section.option}

オプションの値

${weechat.look.buffer_time_format}

%H:%M:%S

${name}

バッファに対するローカル変数 name の値

${nick}

FlashCode

${hdata.var1.var2...}
${hdata[list].var1.var2...}

hdata の値 (windowbuffer ポインタはデフォルトで現在のウィンドウ/バッファに設定されます)

${buffer[gui_buffers].full_name}
${window.buffer.number}

core.weechat
1

C 言語での使用例:

スクリプト (Python) での使用例:

3.3. UTF-8

UTF-8 文字列関数。

3.3.1. weechat_utf8_has_8bits

文字列に 8 ビット文字が含まれているか確認。

プロトタイプ:

引数:

  • string: 文字列

戻り値:

  • 文字列に 8 ビット文字が含まれる場合は 1、7 ビット文字だけの場合は 0

C 言語での使用例:

Note
スクリプト API ではこの関数を利用できません。

3.3.2. weechat_utf8_is_valid

文字列が妥当な UTF-8 表現か確認。

プロトタイプ:

引数:

  • string: 文字列

  • error: NULL でない場合は error は文字列に含まれる最初の妥当でない UTF-8 文字へのポインタ

戻り値:

  • 妥当な UTF-8 文字列の場合は 1、妥当でない場合は 0

C 言語での使用例:

Note
スクリプト API ではこの関数を利用できません。

3.3.3. weechat_utf8_normalize

UTF-8 文字列を正規化: 非 UTF-8 文字を削除し、これらを文字で置換。

プロトタイプ:

引数:

  • string: 文字列

  • replacement: 非 UTF-8 文字を置き換える文字

C 言語での使用例:

Note
スクリプト API ではこの関数を利用できません。

3.3.4. weechat_utf8_prev_char

文字列中の 1 つ前の UTF-8 文字へのポインタを返す。

プロトタイプ:

引数:

  • string_start: 文字列の開始位置へのポインタ (関数はこのポインタよりも前の文字を返しません)

  • string: 文字列へのポインタ (必ず string_start 以上の値)

戻り値:

  • 1 つ前の UTF-8 文字へのポインタ、見つからなければ (文字列の開始位置に到達した場合は) NULL

C 言語での使用例:

Note
スクリプト API ではこの関数を利用できません。

3.3.5. weechat_utf8_next_char

文字列中の 1 つ後の UTF-8 文字へのポインタを返す。

プロトタイプ:

引数:

  • string: 文字列

戻り値:

  • 1 つ後の UTF-8 文字へのポインタ、見つからなければ (文字列の最後に到達した場合は) NULL

C 言語での使用例:

Note
スクリプト API ではこの関数を利用できません。

3.3.6. weechat_utf8_char_int

UTF-8 文字を整数で返す。

プロトタイプ:

引数:

  • string: 文字列

戻り値:

  • UTF-8 文字の整数表現

C 言語での使用例:

Note
スクリプト API ではこの関数を利用できません。

3.3.7. weechat_utf8_char_size

UTF-8 文字のサイズを返す (バイト単位)。

プロトタイプ:

引数:

  • string: 文字列

戻り値:

  • UTF-8 文字のサイズ (バイト単位)

C 言語での使用例:

Note
スクリプト API ではこの関数を利用できません。

3.3.8. weechat_utf8_strlen

UTF-8 文字の長さを返す (UTF-8 文字の個数)。

プロトタイプ:

引数:

  • string: 文字列

戻り値:

  • UTF-8 文字列の長さ (UTF-8 文字の個数)

C 言語での使用例:

Note
スクリプト API ではこの関数を利用できません。

3.3.9. weechat_utf8_strnlen

文字列の bytes バイト目までに含まれる UTF-8 文字列の長さを返す (UTF-8 文字の個数)。

プロトタイプ:

引数:

  • string: 文字列

  • bytes: バイト数の上限

戻り値:

  • UTF-8 文字列の長さ (UTF-8 文字の個数)

C 言語での使用例:

Note
スクリプト API ではこの関数を利用できません。

3.3.10. weechat_utf8_strlen_screen

UTF-8 文字列をスクリーン上に表示するために必要なスクリーン幅を返す。

プロトタイプ:

引数:

  • string: 文字列

戻り値:

  • UTF-8 文字列をスクリーン上に表示するために必要なスクリーン幅。

C 言語での使用例:

Note
スクリプト API ではこの関数を利用できません。

3.3.11. weechat_utf8_charcmp

バージョン 1.0 で更新。

2 つの UTF-8 文字を比較。

プロトタイプ:

引数:

  • string1: 1 番目の比較文字列

  • string2: 2 番目の比較文字列

戻り値:

  • string1 < string2 の場合は -1

  • string1 == string2 の場合は 0

  • string1 > string2 の場合は 1

C 言語での使用例:

Note
スクリプト API ではこの関数を利用できません。

3.3.12. weechat_utf8_charcasecmp

バージョン 1.0 で更新。

大文字小文字の違いを無視して、2 つの UTF-8 文字を比較。

プロトタイプ:

引数:

  • string1: 1 番目の比較文字列

  • string2: 2 番目の比較文字列

戻り値:

  • string1 < string2 の場合は -1

  • string1 == string2 の場合は 0

  • string1 > string2 の場合は 1

C 言語での使用例:

Note
スクリプト API ではこの関数を利用できません。

3.3.13. weechat_utf8_char_size_screen

UTF-8 文字をスクリーン上に表示するために必要なスクリーン幅を返す。

プロトタイプ:

引数:

  • string: 文字列

戻り値:

  • UTF-8 文字をスクリーン上に表示するために必要なスクリーン幅

C 言語での使用例:

Note
スクリプト API ではこの関数を利用できません。

3.3.14. weechat_utf8_add_offset

UTF-8 文字列で N 文字前に進む。

プロトタイプ:

引数:

  • string: 文字列

  • offset: 文字数

戻り値:

  • 文字列の N 文字後に進んだ位置へのポインタ (元文字列の最後より後の位置を指す場合は NULL)

C 言語での使用例:

Note
スクリプト API ではこの関数を利用できません。

3.3.15. weechat_utf8_real_pos

UTF-8 文字列中の真の位置を返す。

プロトタイプ:

引数:

  • string: 文字列

  • pos: 位置 (文字目)

戻り値:

  • 真の位置 (バイト目)

C 言語での使用例:

Note
スクリプト API ではこの関数を利用できません。

3.3.16. weechat_utf8_pos

UTF-8 文字列中の位置を返す。

プロトタイプ:

引数:

  • string: 文字列

  • real_pos: 真の位置 (バイト目)

戻り値:

  • 位置 (文字目)

C 言語での使用例:

Note
スクリプト API ではこの関数を利用できません。

3.3.17. weechat_utf8_strndup

最長 length 文字の複製された文字列を返す。

プロトタイプ:

引数:

  • string: 文字列

  • length: 複製する文字数の最大値

戻り値:

  • 複製された文字列 (使用後には必ず "free" を呼び出して領域を開放してください)

C 言語での使用例:

Note
スクリプト API ではこの関数を利用できません。

3.4. ディレクトリ

ディレクトリに関する関数。

3.4.1. weechat_mkdir_home

WeeChat ホームディレクトリの下にディレクトリを作成。

プロトタイプ:

引数:

  • directory: 作成するディレクトリの名前

  • mode: ディレクトリのモード

戻り値:

  • ディレクトリの作成に成功した場合は 1、エラーが起きた場合は 0

C 言語での使用例:

スクリプト (Python) での使用例:

3.4.2. weechat_mkdir

ディレクトリを作成。

プロトタイプ:

引数:

  • directory: 作成するディレクトリの名前

  • mode: ディレクトリのモード

戻り値:

  • ディレクトリの作成に成功した場合は 1、エラーが起きた場合は 0

C 言語での使用例:

スクリプト (Python) での使用例:

3.4.3. weechat_mkdir_parents

ディレクトリの作成と必要に応じて親ディレクトリの作成を行う。

プロトタイプ:

引数:

  • directory: 作成するディレクトリの名前

  • mode: ディレクトリのモード

戻り値:

  • ディレクトリの作成に成功した場合は 1、エラーが起きた場合は 0

C 言語での使用例:

スクリプト (Python) での使用例:

3.4.4. weechat_exec_on_files

ディレクトリ中のファイルを探し、各ファイルに対してコールバックを実行。

プロトタイプ:

引数:

  • directory: ファイルを検索するディレクトリ

  • hidden_files: 検索対象に隠しファイルを含める場合は 1、含めない場合は 0

  • data: WeeChat がコールバックを呼び出す際にコールバックに渡すポインタ

  • callback: 各ファイルに対して呼び出す関数、引数:

    • void *data: ポインタ

    • const char *filename: 見つかったファイルの名前

C 言語での使用例:

Note
スクリプト API ではこの関数を利用できません。

3.4.5. weechat_file_get_content

WeeChat バージョン 0.3.1 以上で利用可。

テキストファイルの内容を文字列に代入。

プロトタイプ:

引数:

  • filename: パスやファイル名

戻り値:

  • ファイルの内容を含む文字列 (使用後には必ず "free" を呼び出して領域を開放してください)

C 言語での使用例:

Note
スクリプト API ではこの関数を利用できません。

3.5. ユーティリティ

便利な関数。

3.5.1. weechat_util_timeval_cmp

2 つの "timeval" 構造体を比較。

プロトタイプ:

引数:

  • tv1: 1 番目の "timeval" 構造体

  • tv2: 2 番目の "timeval" 構造体

戻り値:

  • tv1 < tv2 の場合は -1

  • tv1 == tv2 の場合は 0

  • tv1 > tv2 の場合は +1

C 言語での使用例:

Note
スクリプト API ではこの関数を利用できません。

3.5.2. weechat_util_timeval_diff

バージョン 1.1 で更新。

2 つの "timeval" 構造体の差を返す (マイクロ秒単位)。

プロトタイプ:

引数:

  • tv1: 1 番目の "timeval" 構造体

  • tv2: 2 番目の "timeval" 構造体

戻り値:

  • マイクロ秒単位の差

Note
WeeChat バージョン 1.0 以前の場合、戻り値の単位はミリ秒でした。

C 言語での使用例:

Note
スクリプト API ではこの関数を利用できません。

3.5.3. weechat_util_timeval_add

バージョン 1.1 で更新。

timeval 構造体に時間間隔を追加 (マイクロ秒単位)。

プロトタイプ:

引数:

  • tv: timeval 構造体

  • interval: 時間間隔 (マイクロ秒単位)

Note
WeeChat バージョン 1.0 以前の場合、時間間隔の単位はミリ秒でした。

C 言語での使用例:

Note
スクリプト API ではこの関数を利用できません。

3.5.4. weechat_util_get_time_string

WeeChat バージョン 0.3.2 以上で利用可。

日付や時間を "strftime" で作った文字列で取得。

プロトタイプ:

引数:

  • date: 日付へのポインタ

C 言語での使用例:

Note
スクリプト API ではこの関数を利用できません。

3.5.5. weechat_util_version_number

WeeChat バージョン 0.3.9 以上で利用可。

WeeChat バージョンの文字列を番号に変換。

プロトタイプ:

引数:

  • version: WeeChat バージョン文字列 (例: "0.3.9" や "0.3.9-dev")

C 言語での使用例:

Note
スクリプト API ではこの関数を利用できません。

3.6. ソート済みリスト

ソート済みリスト関数。

3.6.1. weechat_list_new

新しいリストを作成。

プロトタイプ:

戻り値:

  • 新しいリストへのポインタ

C 言語での使用例:

スクリプト (Python) での使用例:

3.6.2. weechat_list_add

リストに要素を追加。

プロトタイプ:

引数:

  • weelist: リストへのポインタ

  • data: リストに追加するデータ

  • where: データを追加する場所:

    • WEECHAT_LIST_POS_SORT: リストに追加、リストをソートされた状態を保持

    • WEECHAT_LIST_POS_BEGINNING: リストの最初に追加

    • WEECHAT_LIST_POS_END: リストの最後に追加

  • user_data: 任意のポインタ

戻り値:

  • 新しい要素へのポインタ

C 言語での使用例:

スクリプト (Python) での使用例:

リストから要素を検索。

プロトタイプ:

引数:

  • weelist: リストへのポインタ

  • data: リストから検索するデータ

戻り値:

  • 見つかった要素へのポインタ、見つからなかった場合は NULL

C 言語での使用例:

スクリプト (Python) での使用例:

3.6.4. weechat_list_search_pos

WeeChat バージョン 0.3.4 以上で利用可。

リストから要素の位置を検索。

プロトタイプ:

引数:

  • weelist: リストへのポインタ

  • data: リストから検索するデータ

戻り値:

  • 見つかった要素の位置、見つからなかった場合は -1

C 言語での使用例:

スクリプト (Python) での使用例:

3.6.5. weechat_list_casesearch

大文字小文字を無視してリストから要素を検索。

プロトタイプ:

引数:

  • weelist: リストへのポインタ

  • data: リストから検索するデータ

戻り値:

  • 見つかった要素へのポインタ、見つからなかった場合は NULL

C 言語での使用例:

スクリプト (Python) での使用例:

3.6.6. weechat_list_casesearch_pos

WeeChat バージョン 0.3.4 以上で利用可。

大文字小文字を無視してリストから要素の位置を検索。

プロトタイプ:

引数:

  • weelist: リストへのポインタ

  • data: リストから検索するデータ

戻り値:

  • 見つかった要素の位置、見つからなかった場合は -1

C 言語での使用例:

スクリプト (Python) での使用例:

3.6.7. weechat_list_get

リスト中の位置を指定して要素を返す。

プロトタイプ:

引数:

  • weelist: リストへのポインタ

  • position: リスト中の位置 (1 番目の要素は 0)

戻り値:

  • 見つかった要素へのポインタ、見つからなかった場合は NULL

C 言語での使用例:

スクリプト (Python) での使用例:

3.6.8. weechat_list_set

ある要素に新しい値をセット。

プロトタイプ:

引数:

  • item: 要素へのポインタ

  • value: 要素にセットする新しい値

C 言語での使用例:

スクリプト (Python) での使用例:

3.6.9. weechat_list_next

リストから 1 つ後の要素を返す。

プロトタイプ:

引数:

  • item: 要素へのポインタ

戻り値:

  • 1 つ後の要素へのポインタ、ポインタがリストの最後を指す場合は NULL

C 言語での使用例:

スクリプト (Python) での使用例:

3.6.10. weechat_list_prev

リストから 1 つ前の要素を返す。

プロトタイプ:

引数:

  • item: 要素へのポインタ

戻り値:

  • 1 つ前の要素へのポインタ、ポインタがリストの最初を指す場合は NULL

C 言語での使用例:

スクリプト (Python) での使用例:

3.6.11. weechat_list_string

ある要素の文字列値を返す。

プロトタイプ:

引数:

  • item: 要素へのポインタ

戻り値:

  • 要素の文字列値

C 言語での使用例:

スクリプト (Python) での使用例:

3.6.12. weechat_list_size

リストのサイズ (要素の個数) を返す。

プロトタイプ:

引数:

  • weelist: 要素へのポインタ

戻り値:

  • リストのサイズ (要素の個数)、リストが空の場合は 0

C 言語での使用例:

スクリプト (Python) での使用例:

3.6.13. weechat_list_remove

ある要素をリストから削除。

プロトタイプ:

引数:

  • weelist: リストへのポインタ

  • item: 要素へのポインタ

C 言語での使用例:

スクリプト (Python) での使用例:

3.6.14. weechat_list_remove_all

あるリストの要素をすべて削除。

プロトタイプ:

引数:

  • weelist: リストへのポインタ

C 言語での使用例:

スクリプト (Python) での使用例:

3.6.15. weechat_list_free

リストを開放。

プロトタイプ:

引数:

  • weelist: リストへのポインタ

C 言語での使用例:

スクリプト (Python) での使用例:

3.7. ハッシュテーブル

ハッシュテーブル関数。

3.7.1. weechat_hashtable_new

WeeChat バージョン 0.3.3 以上で利用可。

新しいハッシュテーブルを作成。

プロトタイプ:

引数:

  • 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 番目のキー

    • 戻り値:

      • key1key2 より小さい場合は負

      • key1key2 と同じ場合はゼロ

      • key1key2 より大きい場合は正

戻り値:

  • 新しいハッシュテーブルへのポインタ、エラーが起きた場合は NULL

C 言語での使用例:

Note
スクリプト API ではこの関数を利用できません。

3.7.2. weechat_hashtable_set_with_size

WeeChat バージョン 0.3.3 以上で利用可、バージョン 0.4.2 で更新。

キーと値のサイズを使ってハッシュテーブルの要素を追加または更新。

プロトタイプ:

引数:

  • hashtable: ハッシュテーブルへのポインタ

  • key: キーへのポインタ

  • key_size: キーのサイズ (バイト単位)、ハッシュテーブルのキーの種類が "buffer" の場合のみ使用

  • value: 値へのポインタ

  • value_size: 値のサイズ (バイト単位)、ハッシュテーブルの値の種類が "buffer" の場合のみ使用

戻り値:

  • 作成または更新された要素へのポインタ、エラーが起きた場合は NULL

C 言語での使用例:

Note
スクリプト API ではこの関数を利用できません。

3.7.3. weechat_hashtable_set

WeeChat バージョン 0.3.3 以上で利用可、バージョン 0.4.2 で更新。

ハッシュテーブルの要素を追加または更新。

プロトタイプ:

引数:

  • hashtable: ハッシュテーブルへのポインタ

  • key: キーへのポインタ

  • value: 値へのポインタ

戻り値:

  • 作成または更新された要素へのポインタ、エラーが起きた場合は NULL

C 言語での使用例:

Note
スクリプト API ではこの関数を利用できません。

3.7.4. weechat_hashtable_get

WeeChat バージョン 0.3.3 以上で利用可。

ハッシュテーブルからキーに紐付けられた値を取得。

プロトタイプ:

引数:

  • hashtable: ハッシュテーブルへのポインタ

  • key: キーへのポインタ

戻り値:

  • キーに対応する値、キーが見つからない場合は NULL

C 言語での使用例:

Note
スクリプト API ではこの関数を利用できません。

3.7.5. weechat_hashtable_has_key

WeeChat バージョン 0.3.4 以上で利用可。

ハッシュテーブル内にキーが有るか確認する。

プロトタイプ:

引数:

  • hashtable: ハッシュテーブルへのポインタ

  • key: キーへのポインタ

戻り値:

  • ハッシュテーブル内にキーが有る場合は 1、無い場合は 0

C 言語での使用例:

Note
スクリプト API ではこの関数を利用できません。

3.7.6. weechat_hashtable_map

WeeChat バージョン 0.3.3 以上で利用可。

ハッシュテーブルのすべてのエントリに対して関数を呼び出す。

プロトタイプ:

引数:

  • hashtable: ハッシュテーブルへのポインタ

  • callback_map: ハッシュテーブルの各のエントリに対して呼び出す関数

  • callback_map_data: コールバックを呼び出す際のコールバックの結果保存先へのポインタ

C 言語での使用例:

Note
スクリプト API ではこの関数を利用できません。

3.7.7. weechat_hashtable_map_string

WeeChat バージョン 0.3.7 以上で利用可。

ハッシュテーブルのすべてのエントリに対して関数を呼び出す、キーと値を文字列として関数に渡す。

プロトタイプ:

引数:

  • hashtable: ハッシュテーブルへのポインタ

  • callback_map: ハッシュテーブルの各のエントリに対して呼び出す関数

  • callback_map_data: コールバックを呼び出した際のコールバックの結果保存先へのポインタ

Note
コールバックに渡される文字列 keyvalue は一時的な文字列で、コールバックの呼び出しが終了したら削除されます。

C 言語での使用例:

Note
スクリプト API ではこの関数を利用できません。

3.7.8. weechat_hashtable_dup

WeeChat バージョン 1.0 以上で利用可。

ハッシュテーブルを複製。

プロトタイプ:

引数:

  • hashtable: ハッシュテーブルへのポインタ

戻り値:

  • 複製されたハッシュテーブ

C 言語での使用例:

Note
スクリプト API ではこの関数を利用できません。

3.7.9. weechat_hashtable_get_integer

WeeChat バージョン 0.3.3 以上で利用可。

ハッシュテーブルプロパティの整数値を返す。

プロトタイプ:

引数:

  • hashtable: ハッシュテーブルへのポインタ

  • property: プロパティ名:

    • size: ハッシュテーブルの内部配列 "htable" のサイズ

    • items_count: ハッシュテーブルに含まれる要素の数

戻り値:

  • プロパティの整数値

C 言語での使用例:

Note
スクリプト API ではこの関数を利用できません。

3.7.10. weechat_hashtable_get_string

WeeChat バージョン 0.3.4 以上で利用可。

ハッシュテーブルプロパティを文字列値で返す。

プロトタイプ:

引数:

  • 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 言語での使用例:

Note
スクリプト API ではこの関数を利用できません。

3.7.11. weechat_hashtable_set_pointer

WeeChat バージョン 0.3.4 以上で利用可。

ハッシュテーブルのポインタ値を設定。

プロトタイプ:

引数:

  • hashtable: ハッシュテーブルへのポインタ

  • property: プロパティ名:

    • callback_free_key: ハッシュテーブルからキーを開放する際のコールバック関数 (WeeChat バージョン 0.4.2 以上で利用可)

    • callback_free_value: ハッシュテーブルから値を開放する際のコールバック関数

  • pointer: プロパティの新しいポインタ値

C 言語での使用例:

Note
スクリプト API ではこの関数を利用できません。

3.7.12. weechat_hashtable_add_to_infolist

WeeChat バージョン 0.3.3 以上で利用可。

ハッシュテーブルの要素をインフォリスト要素に追加

プロトタイプ:

引数:

  • hashtable: ハッシュテーブルへのポインタ

  • infolist_item: infolist 要素へのポインタ

  • prefix: infolist で名前のプレフィックスとして使う文字列

戻り値:

  • 成功した場合は 1、エラーが起きた場合は 0

C 言語での使用例:

Note
スクリプト API ではこの関数を利用できません。

3.7.13. weechat_hashtable_remove

WeeChat バージョン 0.3.3 以上で利用可。

ハッシュテーブルから要素を削除。

プロトタイプ:

引数:

  • hashtable: ハッシュテーブルへのポインタ

  • key: キーへのポインタ

C 言語での使用例:

Note
スクリプト API ではこの関数を利用できません。

3.7.14. weechat_hashtable_remove_all

WeeChat バージョン 0.3.3 以上で利用可。

ハッシュテーブルからすべての要素を削除。

プロトタイプ:

引数:

  • hashtable: ハッシュテーブルへのポインタ

C 言語での使用例:

Note
スクリプト API ではこの関数を利用できません。

3.7.15. weechat_hashtable_free

WeeChat バージョン 0.3.3 以上で利用可。

ハッシュテーブルを開放。

プロトタイプ:

引数:

  • hashtable: ハッシュテーブルへのポインタ

C 言語での使用例:

Note
スクリプト API ではこの関数を利用できません。

3.8. 設定ファイル

設定ファイルに関する関数。

3.8.1. weechat_config_new

新しい設定ファイルを作成。

プロトタイプ:

引数:

  • 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_new_section を使って) セクションもしくは (weechat_config_new_option を使って) オプションを追加した後だけです。

C 言語での使用例:

スクリプト (Python) での使用例:

3.8.2. weechat_config_new_section

設定ファイルに新しいセクションを作成する。

プロトタイプ:

引数:

  • 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 言語での使用例:

スクリプト (Python) での使用例:

3.8.3. weechat_config_search_section

設定ファイルからセクションを検索。

プロトタイプ:

引数:

  • config_file: 設定ファイルへのポインタ

  • section_name: 検索するセクションの名前

戻り値:

  • セクションが見つかった場合はセクションへのポインタ、見つからなかった場合は NULL

C 言語での使用例:

スクリプト (Python) での使用例:

3.8.4. weechat_config_new_option

設定ファイルのあるセクションに新しいオプションを作成。

プロトタイプ:

引数:

  • 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 言語での使用例:

スクリプト (Python) での使用例:

Note
Ruby では、3 組のコールバックとデータ (合わせて 6 つの文字列) を渡すために必ず 6 つの文字列をからなる配列を 1 つ渡してください (これは Ruby が 関数に 15 個以上の引数を渡せないことが原因です)、より詳しい情報は WeeChat スクリプト作成ガイド を参照してください (バージョン 0.4.1 で修正済み)

3.8.5. weechat_config_search_option

設定ファイルのセクションからオプションを検索。

プロトタイプ:

引数:

  • config_file: 設定ファイルへのポインタ

  • section: セクションへのポインタ

  • name: 検索するオプションの名前

戻り値:

  • オプションが見つかった場合はオプションへのポインタ、見つからなかった場合は NULL

C 言語での使用例:

スクリプト (Python) での使用例:

3.8.6. weechat_config_search_section_option

設定ファイルまたはセクションからセクションやオプションを検索。

プロトタイプ:

引数:

  • config_file: 設定ファイルへのポインタ

  • section: セクションへのポインタ

  • option_name: オプション名

  • section_found: セクションへのポインタへのポインタ、 これは見つかったオプションのセクションになります

  • option_found: オプションへのポインタへのポインタ、 これは見つかったオプションのへのポインタになります

C 言語での使用例:

Note
スクリプト API ではこの関数を利用できません。

3.8.7. weechat_config_search_with_string

ファイル/セクション/オプションの情報をオプションを完全な名前で検索。

プロトタイプ:

引数:

  • option_name: オプションの完全な名前 (フォーマット: "file.section.option")

  • config_file: 設定ファイルへのポインタへのポインタ、 これは見つかったオプションの設定ファイルへのポインタになります

  • section: セクションへのポインタのポインタ、 これは見つかったオプションのセクションになります

  • option: オプションへのポインタのポインタ、 これは見つかったオプションへのポインタになります

  • pos_option_name: 文字列へのポインタへのポインタ、 これはオプション名へのポインタになります

C 言語での使用例:

Note
スクリプト API ではこの関数を利用できません。

3.8.8. weechat_config_string_to_boolean

テキストがブール値としての "true" または "false" かをチェック。

プロトタイプ:

引数:

  • text: チェックするテキスト

戻り値:

  • テキストが "true" ("on"、"yes"、"y"、"true"、"t"、"1") の場合は 1

  • テキストが "false" ("off"、"no"、"n"、"false"、"f"、"0") の場合は 0

C 言語での使用例:

スクリプト (Python) での使用例:

3.8.9. weechat_config_option_reset

オプションをデフォルト値にリセット。

プロトタイプ:

引数:

  • option: オプションへのポインタ

  • run_callback: オプションを変更する際に、コールバックを呼び出す場合は 1、呼び出さない場合は 0

戻り値:

  • オプションの値がリセットされた場合は WEECHAT_CONFIG_OPTION_SET_OK_CHANGED

  • 値が変更されなかった場合は WEECHAT_CONFIG_OPTION_SET_OK_SAME_VALUE

  • エラーが起きた場合は WEECHAT_CONFIG_OPTION_SET_ERROR

C 言語での使用例:

スクリプト (Python) での使用例:

3.8.10. weechat_config_option_set

オプションに新しい値を設定。

プロトタイプ:

引数:

  • 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 言語での使用例:

スクリプト (Python) での使用例:

3.8.11. weechat_config_option_set_null

あるオプションに null (未定義値) を設定する。

プロトタイプ:

引数:

  • option: オプションへのポインタ

  • run_callback: オプションが (null 以外の値に) 変更された際に、change コールバックを呼び出す場合は 1、呼び出さない場合は 0

Note
オプションに null を設定することが許可されている場合にのみ null を設定できます (weechat_config_new_option を参照)。

戻り値:

  • オプション値が変更された場合は WEECHAT_CONFIG_OPTION_SET_OK_CHANGED

  • 値が変更されなかった場合は WEECHAT_CONFIG_OPTION_SET_OK_SAME_VALUE

  • エラーが起きた場合は WEECHAT_CONFIG_OPTION_SET_ERROR

C 言語での使用例:

スクリプト (Python) での使用例:

3.8.12. weechat_config_option_unset

オプションをアンセット/リセットする。

プロトタイプ:

引数:

  • 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 言語での使用例:

スクリプト (Python) での使用例:

3.8.13. weechat_config_option_rename

オプションをリネーム。

プロトタイプ:

引数:

  • option: オプションへのポインタ

  • new_name: オプションの新しい名前

C 言語での使用例:

スクリプト (Python) での使用例:

3.8.14. weechat_config_option_get_pointer

あるオプションのプロパティへのポインタを返す。

プロトタイプ:

引数:

  • 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 言語での使用例:

Note
スクリプト API ではこの関数を利用できません。

3.8.15. weechat_config_option_is_null

オプションの値が "null" (未定義値) か否かを確認。

プロトタイプ:

引数:

  • option: オプションへのポインタ

戻り値:

  • オプションの値が "null" の場合は 1

  • オプションの値が "null" でない場合は 0

C 言語での使用例:

スクリプト (Python) での使用例:

3.8.16. weechat_config_option_default_is_null

あるオプションのデフォルト値が "null" (未定義値) か否かを確認。

プロトタイプ:

引数:

  • option: オプションへのポインタ

戻り値:

  • オプションの値が "null" の場合は 1

  • オプションの値が "null" でない場合は 0

C 言語での使用例:

スクリプト (Python) での使用例:

3.8.17. weechat_config_boolean

オプションのブール値を返す。

プロトタイプ:

引数:

  • option: オプションへのポインタ

戻り値:

  • オプションのブール値 (0 または 1)

C 言語での使用例:

スクリプト (Python) での使用例:

3.8.18. weechat_config_boolean_default

オプションのデフォルトブール値を返す。

プロトタイプ:

引数:

  • option: オプションへのポインタ

戻り値:

  • オプションのデフォルトブール値 (0 または 1)

C 言語での使用例:

スクリプト (Python) での使用例:

3.8.19. weechat_config_integer

オプションの整数値を返す。

プロトタイプ:

引数:

  • option: オプションへのポインタ

戻り値:

  • オプションの整数値

C 言語での使用例:

スクリプト (Python) での使用例:

3.8.20. weechat_config_integer_default

オプションのデフォルト整数値を返す。

プロトタイプ:

引数:

  • option: オプションへのポインタ

戻り値:

  • オプションのデフォルト整数値

C 言語での使用例:

スクリプト (Python) での使用例:

3.8.21. weechat_config_string

オプションの文字列値を返す。

プロトタイプ:

引数:

  • option: オプションへのポインタ

戻り値:

  • オプションの文字列値

C 言語での使用例:

スクリプト (Python) での使用例:

3.8.22. weechat_config_string_default

オプションのデフォルト文字列値を返す。

プロトタイプ:

引数:

  • option: オプションへのポインタ

戻り値:

  • オプションのデフォルト文字列値

C 言語での使用例:

スクリプト (Python) での使用例:

3.8.23. weechat_config_color

オプションの色値を返す。

プロトタイプ:

引数:

  • option: オプションへのポインタ

戻り値:

  • オプションの色値 (色の名前を収めた文字列)

C 言語での使用例:

スクリプト (Python) での使用例:

3.8.24. weechat_config_color_default

オプションのデフォルト色値を返す。

プロトタイプ:

引数:

  • option: オプションへのポインタ

戻り値:

  • オプションのデフォルト色値 (色の名前を収めた文字列)

C 言語での使用例:

スクリプト (Python) での使用例:

3.8.25. weechat_config_write_option

設定ファイルにオプションとその値を収めた行を書き込む (この関数をセクションの "write" および "write_default" コールバック以外で使わないでください)。

プロトタイプ:

引数:

  • config_file: 設定ファイルへのポインタ

  • option: オプションへのポインタ

C 言語での使用例:

スクリプト (Python) での使用例:

3.8.26. weechat_config_write_line

設定ファイルに行を書き込む (この関数をセクションの "write" および "write_default" コールバック以外で使わないでください)

プロトタイプ:

引数:

  • config_file: 設定ファイルへのポインタ

  • option_name: オプション名

  • value: 値 (NULL の場合、セクション名の行を書き込みます。例: "[section]")

C 言語での使用例:

スクリプト (Python) での使用例:

3.8.27. weechat_config_write

設定ファイルをディスクに書き込む。

プロトタイプ:

引数:

  • config_file: 設定ファイルへのポインタ

戻り値:

  • 設定を書き込んだ場合は WEECHAT_CONFIG_WRITE_OK

  • メモリ不足の場合は WEECHAT_CONFIG_WRITE_MEMORY_ERROR

  • その他のエラーが起きた場合は WEECHAT_CONFIG_WRITE_ERROR

C 言語での使用例:

スクリプト (Python) での使用例:

3.8.28. weechat_config_read

設定ファイルをディスクから読み込む。

プロトタイプ:

引数:

  • config_file: 設定ファイルへのポインタ

戻り値:

  • 設定ファイルを読み込んだ場合は WEECHAT_CONFIG_READ_OK

  • メモリ不足の場合は WEECHAT_CONFIG_READ_MEMORY_ERROR

  • ファイルが見つからない場合は WEECHAT_CONFIG_READ_FILE_NOT_FOUND

C 言語での使用例:

スクリプト (Python) での使用例:

3.8.29. weechat_config_reload

設定ファイルをディスクから再読み込みする。

プロトタイプ:

引数:

  • config_file: 設定ファイルへのポインタ

戻り値:

  • 設定を再読み込みした場合は WEECHAT_CONFIG_READ_OK

  • メモリ不足の合は WEECHAT_CONFIG_READ_MEMORY_ERROR

  • ファイルが見つからない場合は WEECHAT_CONFIG_READ_FILE_NOT_FOUND

C 言語での使用例:

スクリプト (Python) での使用例:

3.8.30. weechat_config_option_free

オプションを開放。

プロトタイプ:

引数:

  • option: オプションへのポインタ

C 言語での使用例:

スクリプト (Python) での使用例:

3.8.31. weechat_config_section_free_options

セクションの全てのオプションを開放。

プロトタイプ:

引数:

  • section: セクションへのポインタ

C 言語での使用例:

スクリプト (Python) での使用例:

3.8.32. weechat_config_section_free

セクションを開放。

プロトタイプ:

引数:

  • section: セクションへのポインタ

C 言語での使用例:

スクリプト (Python) での使用例:

3.8.33. weechat_config_free

設定ファイルを開放。

プロトタイプ:

引数:

  • config_file: 設定ファイルへのポインタ

C 言語での使用例:

スクリプト (Python) での使用例:

3.8.34. weechat_config_get

完全な名前でオプションを検索。

プロトタイプ:

引数:

  • option_name: オプションの完全な名前 (フォーマット: "file.section.option")

戻り値:

  • 見つかったオプションへのポインタ、見つからなかった場合は NULL

C 言語での使用例:

スクリプト (Python) での使用例:

3.8.35. weechat_config_get_plugin

プラグインの設定ファイル (plugins.conf) からオプションを検索。

プロトタイプ:

引数:

  • option_name: オプション名、プレフィックス "plugins.var.xxx." が自動的に付けられる (ここで "xxx" は現在のプラグイン名)。

戻り値:

  • 見つかったオプションの値、オプションが見つからなければ NULL

C 言語での使用例:

スクリプト (Python) での使用例:

3.8.36. weechat_config_is_set_plugin

オプションがプラグインの設定ファイル (plugins.conf) で設定されているか否かを確認。

プロトタイプ:

引数:

  • option_name: オプション名、プレフィックス "plugins.var.xxx." が自動的に付けられる (ここで "xxx" は現在のプラグイン名)。

戻り値:

  • オプションが設定されている場合は 1、オプションが存在しない場合は 0

C 言語での使用例:

スクリプト (Python) での使用例:

3.8.37. weechat_config_set_plugin

プラグイン設定ファイル (plugins.conf) のオプションの新しい値を設定。

プロトタイプ:

引数:

  • 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 言語での使用例:

スクリプト (Python) での使用例:

3.8.38. weechat_config_set_desc_plugin

WeeChat バージョン 0.3.5 以上で利用可。

プラグイン設定ファイル (plugins.conf) のオプションに関する説明を設定。

プロトタイプ:

引数:

  • option_name: オプション名、プレフィックス "plugins.var.xxx." が自動的に付けられる (ここで "xxx" は現在のプラグイン名)。

  • description: オプションの説明

Note
オプション (plugins.var.xxx.option_name) が存在しなくても問題ありません。この説明を持つような名前のオプションが作成されます。

C 言語での使用例:

スクリプト (Python) での使用例:

3.8.39. weechat_config_unset_plugin

プラグイン設定ファイル (plugins.conf) のオプションをアンセットする。

プロトタイプ:

引数:

  • 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 言語での使用例:

スクリプト (Python) での使用例:

3.9. キー割り当て

キー割り当てに関する関数。

3.9.1. weechat_key_bind

WeeChat バージョン 0.3.6 以上で利用可。

新しいキー割り当てを追加。

Note
コマンド /key bind とは異なり、この関数がすでに存在しているキー割り当てを変更することはありません。新しいキー割り当てを作成するだけです。キー割り当てを削除するには weechat_key_unbind を使ってください。

プロトタイプ:

引数:

  • context: キーのコンテキスト:

    • default: デフォルトコンテキスト (一般的な動作)

    • search: 検索コンテキスト (バッファ中のテキストを検索中)

    • cursor: スクリーン上のカーソルを自由に移動

    • mouse: マウスイベント用のキー

  • keys: キー割り当てを収めたハッシュテーブル

戻り値:

  • 追加されたキー割り当て

C 言語での使用例:

スクリプト (Python) での使用例:

3.9.2. weechat_key_unbind

WeeChat バージョン 0.3.6 以上で利用可。

キー割り当てを削除。

Warning
この関数を呼び出す際には、ユーザのキー割り当てを削除しないように注意してください。

プロトタイプ:

引数:

  • context: キーのコンテキスト (weechat_key_bind を参照)

  • key: 削除するキーまたは特殊値 "area:XXX" で1 番目または 2 番目の領域から XXX をもつすべてのキーを削除する

戻り値:

  • 削除されたキー割り当ての個数

C 言語での使用例:

スクリプト (Python) での使用例:

3.10. 表示

バッファにテキストを表示する関数。

3.10.1. weechat_prefix

プレフィックスを返す。

プロトタイプ:

引数:

  • prefix: プレフィックスの名前 (以下の表を参照)

戻り値:

  • プレフィックスの値 (プレフィックスと色コードを含む文字列)、プレフィックスが見つからない場合は空文字列

List of prefixes:

プレフィックス 説明

error

=!=

yellow

エラーメッセージ

network

--

magenta

ネットワークからのメッセージ

action

*

white

本人の動作

join

-->

lightgreen

誰かが現在のチャットに参加

quit

<--

lightred

誰かが現在のチャットから退出

Note
値と色はコマンド /set でカスタマイズできます。

C 言語での使用例:

スクリプト (Python) での使用例:

3.10.2. weechat_color

表示する色コードを文字列で返す。

プロトタイプ:

引数:

  • 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 言語での使用例:

スクリプト (Python) での使用例:

3.10.3. weechat_printf

バッファにメッセージを表示。

プロトタイプ:

引数:

  • buffer: バッファへのポインタ、NULL の場合は WeeChat バッファにメッセージを表示

  • message: 表示するメッセージ

Note
メッセージに含まれる最初のタブ文字 ("\t") はメッセージのプレフィックスを分割するために使われます。
メッセージに複数のタブ文字が含まれ、プレフィックスを使いたくない場合は、空白、タブ文字、メッセージのように使ってください (以下の例を参照): これでプレフィックスが無くなります (タブ文字の前の空白は表示されません)。
Note
2 つ連続したタブ文字 ("\t") がメッセージの最初にある場合、時刻は表示されず、メッセージの位置調整は行われません。さらにメッセージの時刻が 0 に設定されます。

C 言語での使用例:

スクリプト (Python) での使用例:

Note
この関数をスクリプトの中で実行するには "print" (Python の場合は "prnt") と綴ります。

3.10.4. weechat_printf_date

日付を指定してバッファにメッセージを表示。

プロトタイプ:

引数:

  • buffer: バッファへのポインタ、NULL の場合、メッセージは WeeChat バッファに表示

  • date: メッセージの日付 (0 は現在の日付/時間を意味する)

  • message: 表示するメッセージ

C 言語での使用例:

Note
スクリプト API ではこの関数を利用できません。

3.10.5. weechat_printf_tags

タグを指定してバッファにメッセージを表示。

プロトタイプ:

引数:

  • buffer: バッファへのポインタ、NULL の場合、メッセージは WeeChat バッファに表示

  • tags: タグのコンマ区切りリスト

  • message: 表示するメッセージ

C 言語での使用例:

Note
スクリプト API ではこの関数を利用できません。

3.10.6. weechat_printf_date_tags

日付とタグを指定してバッファにメッセージを表示。

プロトタイプ:

引数:

  • buffer: バッファへのポインタ、NULL の場合、メッセージは WeeChat バッファに表示

  • date: メッセージの日付 (0 は現在の日付/時間を意味する)

  • tags: タグのコンマ区切りリスト

  • message: 表示するメッセージ

通常使用するタグ (一部抜粋したリスト):

タグ 説明

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" のニックネームにする

host_xxx

メッセージ中のユーザ名とホスト

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 言語での使用例:

スクリプト (Python) での使用例:

Note
この関数をスクリプトの中で実行するには "print_date_tags" (Python の場合は "prnt_date_tags") と綴ります。

3.10.7. weechat_printf_y

自由内容のバッファのある行にメッセージを表示

プロトタイプ:

引数:

  • buffer: バッファへのポインタ

  • y: 行番号 (1 行目は 0); 負数の場合は表示された最後の行の後に行を追加する: y の絶対値で最後の行の後に追加する行数を指定 (例えば -1 は最後の行のすぐ後、-2 は 最後の行の 2 行後) (WeeChat バージョン 1.0 以上で利用可)

  • message: 表示するメッセージ

C 言語での使用例:

スクリプト (Python) での使用例:

Note
この関数をスクリプトの中で実行するには "print_y" (Python の場合は "prnt_y") と綴ります。

3.10.8. weechat_log_printf

WeeChat ログファイル (weechat.log) にメッセージを書き込む。

プロトタイプ:

引数:

  • message: 書き込むメッセージ

C 言語での使用例:

スクリプト (Python) での使用例:

Note
この関数をスクリプトの中で実行するには "log_print" と綴ります。

3.11. フック

フックの優先度

WeeChat バージョン 0.3.4 以上で利用可。

一部のフックに対して優先度を設定することができます。フックリストは優先度の高い順にフックが並べられ、高い優先度を持つフックはそれよりも低い優先度を持つフックが実行される前に実行されます。これは実行順序が重要となる修飾子で便利です。

優先度が指定できる引数に優先度を設定するには、必ず以下の構文を使ってください: "nnn|name" ここで "nnn" は優先度を示すゼロおよび正の整数で "name" は引数の名前です (優先度は自動的に文字列から削除され、フックの名前になります)。

デフォルトの優先度は 1000 です。

C 言語での使用例:

以下のフック型に対して優先度を設定できます: command、command_run、signal、hsignal、config、completion、modifier、info、info_hashtable、infolist、hdata、focus。

3.11.1. weechat_hook_command

コマンドをフックする。

プロトタイプ:

引数:

  • command: コマンド名 (優先度の設定が可能、優先度に関する注意を参照)

  • 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 がコールバックを呼び出す際にコールバックに渡すポインタ

デフォルトの補完候補コードは:

プラグイン 名前 説明

alias

alias

別名のリスト

alias

alias_value

別名の値

aspell

aspell_dicts

aspell のインストール済み辞書のリスト

aspell

aspell_langs

aspell でサポートされる全ての言語のリスト

exec

exec_commands_ids

実行されたコマンドの識別子 (番号と名前)

guile

guile_script

スクリプトのリスト

irc

irc_channel

現在の IRC チャンネル

irc

irc_channel_nicks_hosts

現在の IRC チャンネルにいるニックネームとホスト名

irc

irc_channel_topic

現在の IRC チャンネルのトピック

irc

irc_channels

全ての IRC サーバのチャンネル

irc

irc_ignores_numbers

無視エントリの数

irc

irc_msg_kick

デフォルトのキックメッセージ

irc

irc_msg_part

IRC チャンネルのデフォルト退出メッセージ

irc

irc_notify_nicks

通知エントリのニックネーム

irc

irc_privates

全ての IRC サーバにあるプライベートチャンネル

irc

irc_server

現在の IRC サーバ

irc

irc_server_channels

現在の IRC サーバにあるチャンネル名

irc

irc_server_nick

現在の IRC サーバに接続中のニックネーム

irc

irc_server_nicks

現在の IRC サーバの全てのチャンネルにいるニックネーム

irc

irc_server_privates

現在の IRC サーバにあるプライベートチャンネル

irc

irc_servers

IRC サーバ (内部名)

irc

nick

現在の IRC チャンネルにいるニックネーム

lua

lua_script

スクリプトのリスト

perl

perl_script

スクリプトのリスト

python

python_script

スクリプトのリスト

relay

relay_free_port

リレープラグイン用の最初の空きポート番号

relay

relay_protocol_name

リレープラグインで利用可能な全ての protocol.name

relay

relay_relays

リレープラグインにおける現在のリレーの protocol.name

ruby

ruby_script

スクリプトのリスト

script

script_files

スクリプトディレクトリ内のファイル

script

script_scripts

リポジトリに存在するスクリプトのリスト

script

script_scripts_installed

インストール済みスクリプトのリスト (リポジトリから)

script

script_tags

リポジトリに存在するスクリプトに対するタグのリスト

tcl

tcl_script

スクリプトのリスト

trigger

trigger_hook_arguments

フックに対するデフォルト引数

trigger

trigger_hook_command

フックに対するデフォルトコマンド

trigger

trigger_hook_conditions

バーのデフォルト状態

trigger

trigger_hook_rc

フックコールバックに対するデフォルトのリターンコード

trigger

trigger_hook_regex

フックに対するデフォルトの正規表現

trigger

trigger_hooks

トリガに対するフック

trigger

trigger_hooks_filter

トリガに対するフック (モニタバッファのフィルタ用)

trigger

trigger_names

トリガ

trigger

trigger_names_default

デフォルトトリガ

trigger

trigger_option_value

トリガオプションの値

trigger

trigger_options

トリガに対するオプション

weechat

bars_names

バーの名前

weechat

bars_options

バーのオプション

weechat

buffer_properties_get

バッファから読み取り可能なプロパティ

weechat

buffer_properties_set

バッファに指定可能なプロパティ

weechat

buffers_names

バッファの名前

weechat

buffers_numbers

バッファの数

weechat

buffers_plugins_names

バッファの名前 (プラグインの名前を含めた)

weechat

commands

コマンド (weechat とプラグイン)

weechat

config_files

設定ファイル

weechat

config_option_values

設定オプションの値

weechat

config_options

設定オプション

weechat

cursor_areas

カーソルを自由に動かせるエリア ("chat" またはバーの名前)

weechat

env_value

環境変数の値

weechat

env_vars

環境変数

weechat

filename

ファイル名

weechat

filters_names

フィルタ名

weechat

infolists

フックされた infolist の名前

weechat

infos

フックされた情報の名前

weechat

keys_codes

キーコード

weechat

keys_codes_for_reset

リセットできるキーコード (追加、再定義、削除されたキー)

weechat

keys_contexts

キーコンテキスト

weechat

layouts_names

レイアウトの名前

weechat

nicks

現在のバッファのニックネームリストに含まれるニックネーム

weechat

palette_colors

パレットカラー

weechat

plugins_commands

プラグインの定義するコマンド

weechat

plugins_installed

インストールされたプラグインの名前

weechat

plugins_names

プラグイン名

weechat

proxies_names

プロキシの名前

weechat

proxies_options

プロキシのオプション

weechat

secured_data

保護データの名前 (sec.conf ファイル、セクションデータ)

weechat

weechat_commands

weechat コマンド

weechat

windows_numbers

ウィンドウの数

xfer

nick

DCC チャットのニックネーム

特殊コード:

  • %%command: コマンド command と同じ補完候補テンプレートを使用

  • %-: 補完の中止

  • %*: 最後の補完候補を繰り返す

戻り値:

  • 新しいフックへのポインタ、エラーが起きた場合は NULL

C 言語での使用例:

例えば、コマンドが /command abc def ghi のように実行された場合、argvargv_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) での使用例:

3.11.2. weechat_hook_command_run

WeeChat がコマンドを実行する際にこれをフック。

プロトタイプ:

引数:

  • command: フックするコマンド (ワイルドカード "*" を使うことができます) (優先度の設定が可能、優先度に関する注意を参照)

  • 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 言語での使用例:

スクリプト (Python) での使用例:

3.11.3. weechat_hook_timer

タイマをフックする。

プロトタイプ:

引数:

  • 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 言語での使用例:

スクリプト (Python) での使用例:

3.11.4. weechat_hook_fd

ファイルディスクリプタ (ファイルやソケット) をフック。

プロトタイプ:

引数:

  • 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 言語での使用例:

スクリプト (Python) での使用例:

3.11.5. weechat_hook_process

プロセスをフックして (フォークして実行)、出力を受け取る。

Note
バージョン 0.3.9.2 以降、コマンドを実行するためにシェルを使わないようになりました。WeeChat が自動的にコマンドと引数を分割します (シェルがやっているように)。
(コマンドのクォートに従った) 分割に失敗する場合、またはシェルを使いたい場合は、ハッシュテーブル options に引数を入れて weechat_hook_process_hashtable 関数を使ってください (WeeChat バージョン 0.4.0 以上で利用可)

プロトタイプ:

引数:

  • 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 関数を使えば URL に対してオプションを与えることもできます。

Tip
WeeChat に関する情報 (例えば現在の安定版、最新の git コミット、…) が欲しい場合、https://weechat.org/dev/info に書かれている URL を使ってください
Note
コールバックにデータを送信するバッファのサイズは 64KB (バッファは 2 つあります: 標準出力用と、標準エラー出力用) です。子プロセスからの出力 (標準出力または標準エラー出力) が 64KB よりも大きくなった場合は、コールバックを 1 回以上呼び出します。
Important
コールバックを 1 回より多く呼び出すことが皆無だとしても、コールバックを複数回呼び出しても安全なようにコードを書いてください: 必ず複数回送られたデータを連結し、データを使うのは戻り値が正またはゼロの時だけにしてください。

C 言語での使用例:

スクリプト (Python) での使用例:

3.11.6. weechat_hook_process_hashtable

WeeChat バージョン 0.3.7 以上で利用可。

ハッシュテーブルに収めたオプションを使いプロセスをフックする (フォークして実行)、出力を受け取る。

プロトタイプ:

引数は以下の追加引数を除いて weechat_hook_process 関数と同じです:

  • options: 実行するコマンドのオプション; ハッシュテーブルは関数の中で複製されるため、この関数を呼び出した後にハッシュテーブルを安全に開放できます。

一般的なコマンド (最初に "url:" が付かないコマンド) では、以下のオプションを使うことができます:

オプション 説明

argN (N ≥ 1)
(WeeChat バージョン 0.4.0 以上で利用可)

任意の文字列

コマンドの引数; このオプションを使って引数を渡さない場合、シェルと同じように引数を自動的に分割します (command 引数からコマンド引数を読み込みます)

stdin
(WeeChat バージョン 0.4.3 以上で利用可)

(非使用)

データを書き込むためのパイプを子プロセスの標準入力 (stdin) に作成します (関数 weechat_hook_set を参照)

buffer_flush
(WeeChat バージョン 1.0 以上で利用可)

バイト数

標準出力および標準エラー出力をフラッシュ (出力をコールバックに送信) するバイト数の最小値、 1 から 65536 (デフォルト) まで; 1 = すべての出力をすぐにコールバックに送信

detached
(WeeChat バージョン 1.0 以上で利用可)

(非使用)

detached モードでプロセスを実行: 標準出力と標準エラー出力を /dev/null にリダイレクトする

"url:…" 型のコマンドでは、以下のコマンドを使うことができます (それぞれのオプションについては man curl_easy_setopt を参照):

オプション タイプ 定数 (1)

verbose

long

header

long

noprogress

long

nosignal

long

wildcardmatch

long

failonerror

long

proxy

string

proxyport

long

port

long

httpproxytunnel

long

interface

string

dns_cache_timeout

long

proxytype

long

http, socks4, socks5, socks4a, socks5_hostname, http_1_0

buffersize

long

tcp_nodelay

long

localport

long

localportrange

long

address_scope

long

protocols

mask

http, https, ftp, ftps, scp, sftp, telnet, ldap, ldaps, dict, file, tftp, all, imap, imaps, pop3, pop3s, smtp, smtps, rtsp, rtmp, rtmpt, rtmpe, rtmpte, rtmps, rtmpts, gopher

redir_protocols

mask

http, https, ftp, ftps, scp, sftp, telnet, ldap, ldaps, dict, file, tftp, all, imap, imaps, pop3, pop3s, smtp, smtps, rtsp, rtmp, rtmpt, rtmpe, rtmpte, rtmps, rtmpts, gopher

noproxy

string

socks5_gssapi_service

string

socks5_gssapi_nec

long

tcp_keepalive

long

tcp_keepidle

long

tcp_keepintvl

long

netrc

long

ignored, optional, required

userpwd

string

proxyuserpwd

string

httpauth

mask

none, basic, digest, gssnegotiate, ntlm, any, anysafe, digest_ie, only, ntlm_wb, negotiate

proxyauth

mask

none, basic, digest, gssnegotiate, ntlm, any, anysafe, digest_ie, only, ntlm_wb, negotiate

netrc_file

string

username

string

password

string

proxyusername

string

proxypassword

string

tlsauth_type

mask

none, srp

tlsauth_username

string

tlsauth_password

string

sasl_ir

long

xoauth2_bearer

string

login_options

string

autoreferer

long

followlocation

long

put

long

post

long

postfields

string

referer

string

useragent

string

cookie

string

cookiefile

string

postfieldsize

long

maxredirs

long

httpget

long

cookiejar

string

http_version

long

none, 1_0, 1_1

cookiesession

long

unrestricted_auth

long

postfieldsize_large

long long

cookielist

string

ignore_content_length

long

accept_encoding

string

transfer_encoding

long

http_content_decoding

long

http_transfer_decoding

long

copypostfields

string

postredir

mask

post_301, post_302

expect_100_timeout_ms

long

headeropt

mask

unified, separate

mail_from

string

mail_auth

string

tftp_blksize

long

ftpport

string

ftp_use_epsv

long

ftp_use_eprt

long

ftp_create_missing_dirs

long

ftp_response_timeout

long

ftpsslauth

long

default, ssl, tls

ftp_account

string

ftp_skip_pasv_ip

long

ftp_filemethod

long

multicwd, nocwd, singlecwd

ftp_alternative_to_user

string

ftp_ssl_ccc

long

ccc_none, ccc_active, ccc_passive

dirlistonly

long

append

long

ftp_use_pret

long

rtsp_request

long

options, describe, announce, setup, play, pause, teardown, get_parameter, set_parameter, record, receive

rtsp_session_id

string

rtsp_stream_uri

string

rtsp_transport

string

rtsp_client_cseq

long

rtsp_server_cseq

long

crlf

long

range

string

resume_from

long

customrequest

string

nobody

long

infilesize

long

upload

long

timecondition

long

none, ifmodsince, ifunmodsince, lastmod

timevalue

long

transfertext

long

filetime

long

maxfilesize

long

proxy_transfer_mode

long

resume_from_large

long long

infilesize_large

long long

maxfilesize_large

long long

timeout

long

low_speed_limit

long

low_speed_time

long

fresh_connect

long

forbid_reuse

long

connecttimeout

long

ipresolve

long

whatever, v4, v6

connect_only

long

max_send_speed_large

long long

max_recv_speed_large

long long

timeout_ms

long

connecttimeout_ms

long

maxconnects

long

use_ssl

long

none, try, control, all

dns_servers

string

accepttimeout_ms

long

dns_interface

string

dns_local_ip4

string

dns_local_ip6

string

sslcert

string

sslversion

long

default, tlsv1, sslv2, sslv3

ssl_verifypeer

long

cainfo

string

random_file

string

egdsocket

string

ssl_verifyhost

long

ssl_cipher_list

string

sslcerttype

string

sslkey

string

sslkeytype

string

sslengine

string

sslengine_default

long

capath

string

ssl_sessionid_cache

long

krblevel

string

keypasswd

string

issuercert

string

crlfile

string

certinfo

long

gssapi_delegation

long

none, policy_flag, flag

ssl_options

long

allow_beast

ssl_enable_alpn

long

ssl_enable_npn

long

ssh_auth_types

mask

none, policy_flag, flag

ssh_public_keyfile

string

ssh_private_keyfile

string

ssh_host_public_key_md5

string

ssh_knownhosts

string

new_file_perms

long

new_directory_perms

long

Note
(1) 定数が利用可能な場合、定数は必ずオプションの値に含めてください。"mask" 型のオプションでは、以下のフォーマットに従ってください: "value1+value2+value3"。

URL では、入力/出力ファイル用に 2 つのオプション (文字列) を使うことができます:

  • file_in: 読み込んで URL に送信するファイル (ファイルを送信)

  • file_out: ダウンロードした URL/ファイルをこのファイルに書き込む (標準出力を使わない)

戻り値:

  • 新しいフックへのポインタ、エラーが起きた場合は NULL

C 言語での使用例:

スクリプト (Python) での使用例:

3.11.7. weechat_hook_connect

接続をフックする (リモートホストへのバックグラウンド接続)。

プロトタイプ:

引数:

  • 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 言語での使用例:

スクリプト (Python) での使用例:

3.11.8. weechat_hook_print

WeeChat バージョン 0.4.3 と 1.0 で更新

メッセージの表示をフックする。

プロトタイプ:

引数:

  • 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

Important
WeeChat バージョン 1.0 以上では、スクリプトのコールバック引数 displayedhighlight は整数です (WeeChat バージョン 0.4.3 以下では文字列でした)。
すべてのバージョンで互換性を持たせるためには、引数を使う前に整数に変換することをお勧めします、Python を使った例: "if int(highlight):"。

C 言語での使用例:

スクリプト (Python) での使用例:

3.11.9. weechat_hook_signal

シグナルをフックする。

プロトタイプ:

引数:

  • signal: キャッチするシグナル、ワイルドカード "*" を使うことができます (優先度の設定が可能、優先度に関する注意を参照) (以下の表を参照)

  • 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 とプラグインが送信するシグナルのリスト:

プラグイン シグナル 引数 説明

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 スクリプトを削除

relay

relay_client_connecting
(WeeChat バージョン 1.0 以上で利用可)

Pointer: リレークライアント

リレークライアントが接続中

relay

relay_client_waiting_auth
(WeeChat バージョン 1.0 以上で利用可)

Pointer: リレークライアント

リレークライアントからの認証待ち

relay

relay_client_auth_ok
(WeeChat バージョン 1.0 以上で利用可)

Pointer: リレークライアント

リレークライアントからの認証に成功

relay

relay_client_connected
(WeeChat バージョン 1.0 以上で利用可)

Pointer: リレークライアント

リレークライアントが接続

relay

relay_client_auth_failed
(WeeChat バージョン 1.0 以上で利用可)

Pointer: リレークライアント

リレークライアントの認証に失敗

relay

relay_client_disconnected
(WeeChat バージョン 1.0 以上で利用可)

Pointer: リレークライアント

リレークライアントが切断

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_hidden

Pointer: バッファ

バッファを隠す

weechat

buffer_unhidden

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

key_combo_default
(WeeChat バージョン 1.0 以上で利用可)

String: キーの組み合わせ

default コンテキスト内のキーの組み合わせ

weechat

key_combo_search
(WeeChat バージョン 1.0 以上で利用可)

String: キーの組み合わせ

search コンテキスト内のキーの組み合わせ

weechat

key_combo_cursor
(WeeChat バージョン 1.0 以上で利用可)

String: キーの組み合わせ

cursor コンテキスト内のキーの組み合わせ

weechat

mouse_enabled
(WeeChat バージョン 1.1 以上で利用可)

-

マウスが有効化された

weechat

mouse_disabled
(WeeChat バージョン 1.1 以上で利用可)

-

マウスが無効化された

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

signal_sigwinch
(WeeChat バージョン 0.4.3 以上で利用可)

-

SIGWINCH シグナルを受信しました (端末サイズが変更されました)

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 言語での使用例:

スクリプト (Python) での使用例:

3.11.10. weechat_hook_signal_send

バージョン 1.0 で更新。

シグナルを送信。

プロトタイプ:

引数:

  • signal: 送信するシグナル

  • type_data: シグナルと一緒に送信するデータの型 (weechat_hook_signal を参照)

  • signal_data: シグナルと一緒に送信するデータ

戻り値 (WeeChat バージョン 1.0 以上で利用可。):

  • 最後に実行したコールバックの戻り値 (コールバックを実行しなかった場合は WEECHAT_RC_OK):

    • WEECHAT_RC_OK

    • WEECHAT_RC_OK_EAT

    • WEECHAT_RC_ERROR

C 言語での使用例:

スクリプト (Python) での使用例:

logger_backlog シグナル

シグナル "logger_backlog" はバッファにバックログ (チャット履歴) を表示するために送信することができます (例えば、プラグインやスクリプトでバッファを開く際など)。

引数はバッファへのポインタ。

C 言語での使用例:

スクリプト (Python) での使用例:

xxx_script_install シグナル

プログラミング言語ごとに、スクリプトをインストールするために送信するシグナルが 5 種類あります:

  • perl_script_install

  • python_script_install

  • ruby_script_install

  • lua_script_install

  • tcl_script_install

シグナルを受け取ったらコールバックは以下のように働きます:

  1. インストール済みスクリプトを再読み込みして削除。

  2. 新しいスクリプトをディレクトリ ~/.weechat/xxx/ に移動 (xxx はプログラミング言語)

  3. 新しいスクリプトへのリンクをディレクトリ ~/.weechat/xxx/autoload/ に作成

  4. 新しいスクリプトを読み込む

script プラグインはスクリプトをインストールする際にこれらのシグナルを使っています。

引数はインストールするスクリプトのパスを収めた文字列です。

C 言語での使用例:

スクリプト (Python) での使用例:

xxx_script_remove シグナル

プログラミング言語ごとに、リスト文字列に含まれるスクリプトを削除するために送信するシグナルが 5 種類あります:

  • perl_script_remove

  • python_script_remove

  • ruby_script_remove

  • lua_script_remove

  • tcl_script_remove

リスト文字列に含まれるそれぞれのスクリプトについて、コールバックはスクリプトを再読み込みして削除します。

script プラグインはスクリプトを削除する際にこれらのシグナルを使っています。

引数は削除したいスクリプトのコンマ区切りリスト文字列です (パスを含まないスクリプトの名前を使います、例えば script.py).

C 言語での使用例:

スクリプト (Python) での使用例:

irc_input_send シグナル

WeeChat バージョン 0.3.4 以上で利用可。

irc バッファ(サーバ、チャンネル、プライベート) への入力をシミュレートするにはシグナル "irc_input_send" を送信してください。

引数は以下のフォーマットに従う文字列です:

  • 内部サーバ名 (必須)

  • セミコロン

  • チャンネル名 (任意)

  • セミコロン

  • メッセージを送信する際に使うフラグ (任意、デフォルトは 1):

    • 1: 高い優先度を持つキュー (ユーザメッセージなどと同等)

    • 2: 低い優先度を持つキュー (WeeChat が自動的に送信するメッセージと同等)

  • セミコロン

  • メッセージを送信する際に使うタグのコンマ区切りリスト (任意)

  • セミコロン

  • テキストまたはコマンド (必須)

C 言語での使用例:

スクリプト (Python) での使用例:

3.11.11. weechat_hook_hsignal

WeeChat バージョン 0.3.4 以上で利用可。

hsignal (ハッシュテーブルを持つシグナル) をフック。

プロトタイプ:

Arguments:

  • signal: キャッチするシグナル、ワイルドカード "*" を使うことができます (優先度の設定が可能、優先度に関する注意を参照) (以下の表を参照)

  • 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 のリスト:

プラグイン シグナル 引数 説明

irc

irc_redirection_xxx_yyy (1)
(WeeChat バージョン 0.3.4 以上で利用可)

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 言語での使用例:

スクリプト (Python) での使用例:

3.11.12. weechat_hook_hsignal_send

WeeChat バージョン 0.3.4 以上で利用可、バージョン 1.0 で更新。

hsignal (ハッシュテーブルを持つシグナル) を送信。

プロトタイプ:

引数:

  • signal: 送信するシグナル

  • hashtable: ハッシュテーブル

戻り値 (WeeChat バージョン 1.0 以上で利用可。):

  • 最後に実行したコールバックの戻り値 (コールバックを実行しなかった場合は WEECHAT_RC_OK):

    • WEECHAT_RC_OK

    • WEECHAT_RC_OK_EAT

    • WEECHAT_RC_ERROR

C 言語での使用例:

スクリプト (Python) での使用例:

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

    • monitor

    • names

    • ping

    • time

    • topic

    • userhost

    • who

    • whois

    • whowas

  • signal: シグナル名 (必須)

  • count: 転送を行う回数 (任意、デフォルトは 1 回)

  • string: 受信する irc メッセージに含まれる文字列 (任意ですが推奨します、この文字列を含むメッセージだけを転送します)

  • timeout: 転送のタイムアウト、秒単位 (任意、デフォルトは 60)

  • cmd_filter: フィルタする irc コマンドのコンマ区切りリスト (これらのコマンドはコールバックに送信されます、これ以外のコマンドは無視されます) (任意)

この hsignal を送信したら必ずその直後に irc サーバにコマンドを送信してください、そうすれば送信したコマンドに対する応答が転送されます。

コマンドに対する応答を完全に受信したら、hsignal が送信されます。この hsignal は irc_redirection_xxx_yyy という名前で、ここで xxxsignalyyypattern で指定したものになります。

以下の内容からなるハッシュテーブルが hsignal で送信されます (キーと値は文字列):

  • output: コマンドの出力 (メッセージは "\n" で区切られています)

  • output_size: output のバイト数 (文字列)

  • error: エラー文字列 (エラーが起きた場合):

    • timeout: タイムアウトで転送を中止

  • server: 内部サーバ名

  • pattern: 転送パターン

  • signal: シグナル名

  • command: リダイレクトされたコマンド

C 言語での使用例:

スクリプト (Python) での使用例:

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 言語での使用例:

スクリプト (Python) での使用例:

3.11.13. weechat_hook_config

設定オプションをフック。

プロトタイプ:

引数:

  • option: オプション、フォーマットは完全な名前、コマンド /set で使うのと同じ (例: weechat.look.item_time_format)、ワイルドカード "*" を使うことができます (優先度の設定が可能、優先度に関する注意を参照)

  • callback: 設定オプションが変更されたら呼び出す関数、引数と戻り値:

    • void *data: ポインタ

    • const char *option: オプションの名前

    • const char *value: オプションの新しい値

    • 戻り値:

      • WEECHAT_RC_OK

      • WEECHAT_RC_ERROR

  • callback_data: WeeChat がコールバックを呼び出す際にコールバックに渡すポインタ

戻り値:

  • 新しいフックへのポインタ、エラーが起きた場合は NULL

C 言語での使用例:

スクリプト (Python) での使用例:

3.11.14. weechat_hook_completion

補完をフック。

プロトタイプ:

引数:

  • completion_item: 補完要素の名前、この後フックされたコマンドで %(name) を使うことができます (completion 引数) (優先度の設定が可能、優先度に関する注意を参照)

  • description: 補完の説明

  • callback: 補完要素 (ユーザはこの要素を使って何かを補完している) が使われた場合に呼び出す関数、引数と戻り値:

    • void *data: ポインタ

    • const char *completion_item: 補完要素の名前

    • struct t_gui_buffer *buffer: 補完が行われたバッファ

    • struct t_gui_completion *completion: 補完に際して単語を追加するために使われる構造体 (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 関数を呼び出すだけで、コマンドラインをコールバックで絶対に*変更しない*でください。
Tab が押された時にコマンドラインを更新するためには、関数 weechat_hook_command_run を使ってコマンド "/input complete_next" をフックしてください (コールバックがコマンドラインを更新する場合は必ず WEECHAT_RC_OK_EAT を返してください。そうすれば WeeChat は補完を行いません)。

戻り値:

  • 新しいフックへのポインタ、エラーが起きた場合は NULL

C 言語での使用例:

スクリプト (Python) での使用例:

3.11.15. weechat_hook_completion_get_string

WeeChat バージョン 0.3.4 以上で利用可。

補完プロパティを文字列で取得。

プロトタイプ:

引数:

  • completion: 補完へのポインタ

  • property: プロパティ名:

    • base_command: 補完に使ったコマンド

    • base_word: 補完された単語

    • args: コマンド引数 (元の単語を含む)

C 言語での使用例:

スクリプト (Python) での使用例:

3.11.16. weechat_hook_completion_list_add

補完用に単語を追加。

プロトタイプ:

引数:

  • completion: 補完へのポインタ

  • word: 追加する単語

  • nick_completion: 単語がニックネームの場合は 1、そうでなければ 0

  • where: 単語を追加するリスト上での位置:

    • WEECHAT_LIST_POS_SORT: リストがソートされた状態になるような位置

    • WEECHAT_LIST_POS_BEGINNING: リストの最初

    • WEECHAT_LIST_POS_END: リストの最後

C 言語での使用例: weechat_hook_completion を参照。

スクリプト (Python) での使用例:

3.11.17. weechat_hook_modifier

修飾子をフック。

プロトタイプ:

引数:

  • modifier: 修飾子名、Weechat またはプラグインが使う修飾子のリスト (優先度の設定が可能、優先度に関する注意を参照) (以下の表を参照)

  • callback: 修飾子が使われた際に呼び出す関数、引数と戻り値:

    • void *data: ポインタ

    • const char *modifier: 修飾子の名前

    • const char *modifier_data: 修飾子に渡すデータ

    • const char *string: 修飾子に渡す文字列

    • 戻り値: 新しい文字列

  • callback_data: WeeChat がコールバックを呼び出す際にコールバックに渡すポインタ

戻り値:

  • 新しいフックへのポインタ、エラーが起きた場合は NULL

WeeChat とプラグインが使う修飾子のリスト:

修飾子 修飾子データ 文字列 出力

charset_decode

plugin.buffer_name

任意の文字列

プラグインおよびバッファの文字セットから UTF-8 にデコードされた文字列

charset_encode

plugin.buffer_name

任意の文字列

UTF-8 からプラグインおよびバッファの文字セットにエンコードされた文字列

irc_color_decode

色を保持する場合は "1"、削除する場合は "0"

任意の文字列

WeeChat 色コードに変換された IRC 色コードを含む (または IRC 色コードを削除された) 文字列

irc_color_encode

色を保持する場合は "1"、削除する場合は "0"

任意の文字列

IRC 色コードを含む (または IRC 色コードを削除された) 文字列

irc_color_decode_ansi
(WeeChat バージョン 1.0 以上で利用可)

色を保持する場合は "1"、削除する場合は "0"

任意の文字列

IRC 色コードに変換された ANSI 色コードを含む (または ANSI 色コードを削除された) 文字列

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 バイトを超えないように自動分割した後)

メッセージの新しい内容

color_decode_ansi
(WeeChat バージョン 1.0 以上で利用可)

色を保持する場合は "1"、削除する場合は "0"

任意の文字列

WeeChat 色コードに変換された ANSI 色コードを含む (または ANSI 色コードを削除された) 文字列

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 言語での使用例:

スクリプト (Python) での使用例:

3.11.18. weechat_hook_modifier_exec

修飾子を実行。

プロトタイプ:

引数:

  • modifier: 修飾子の名前

  • modifier_data: 修飾子に渡すデータ

  • string: 修正する文字列

戻り値:

  • 修正された文字列、エラーが起きた場合は NULL

C 言語での使用例:

スクリプト (Python) での使用例:

3.11.19. weechat_hook_info

情報をフック (コールバックを呼び出し、文字列を返す)。

プロトタイプ:

引数:

  • info_name: 情報の名前 (優先度の設定が可能、優先度に関する注意を参照)

  • description: 説明

  • args_description: 引数の説明 (任意、NULL にすることも可)

  • callback: 情報が要求されたら呼び出す関数、引数と戻り値:

    • void *data: ポインタ

    • const char *info_name: 情報の名前

    • const char *arguments: 追加の引数、情報に依存

    • 戻り値: 要求された情報の値

  • callback_data: WeeChat がコールバックを呼び出す際にコールバックに渡すポインタ

戻り値:

  • 新しいフックへのポインタ、エラーが起きた場合は NULL

C 言語での使用例:

スクリプト (Python) での使用例:

3.11.20. weechat_hook_info_hashtable

WeeChat バージョン 0.3.4 以上で利用可。

情報をフック (コールバックを呼び出し、ハッシュテーブルを返す)。

プロトタイプ:

引数:

  • info_name: 情報の名前 (優先度の設定が可能、優先度に関する注意を参照)

  • description: 説明

  • args_description: 引数ハッシュテーブルの説明 (任意、NULL でも可)

  • output_description: コールバックが返すハッシュテーブルの説明 (任意、NULL でも可)

  • callback: 情報を要求する際に呼び出す関数、引数と戻り値:

    • void *data: ポインタ

    • const char *info_name: 情報の名前

    • struct t_hashtable *hashtable: ハッシュテーブル、情報に依存

    • 戻り値: 要求したハッシュテーブル

  • callback_data: WeeChat がコールバックを呼び出す際にコールバックに渡すポインタ

戻り値:

  • 新しいフックへのポインタ、エラーが起きた場合は NULL

C 言語での使用例:

スクリプト (Python) での使用例:

3.11.21. weechat_hook_infolist

インフォリストをフック: コールバックは要求したインフォリストへのポインタを返す。

プロトタイプ:

引数:

  • infolist_name: インフォリストの名前 (優先度の設定が可能、優先度に関する注意を参照)

  • 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 言語での使用例:

スクリプト (Python) での使用例:

3.11.22. weechat_hook_hdata

hdata をフック: コールバックは要求した hdata へのポインタを返す。

プロトタイプ:

引数:

  • hdata_name: hdata の名前 (優先度の設定が可能、優先度に関する注意を参照)

  • description: 説明

  • callback: hdata が要求された際に呼び出す関数、引数と戻り値:

    • void *data: ポインタ

    • const char *hdata_name: hdata の名前

    • 戻り値: 要求された hdata

  • callback_data: WeeChat がコールバックを呼び出す際にコールバックに渡すポインタ

戻り値:

  • 新しいフックへのポインタ、エラーが起きた場合は NULL

C 言語での使用例:

Note
スクリプト API ではこの関数を利用できません。

3.11.23. weechat_hook_focus

フォーカス (マウスイベントやカーソルモード (カーソルが自由に移動出来る状態) でキーが押されたこと) をフック。

プロトタイプ:

引数:

  • area: チャットエリアの場合は "chat"、またはバー要素の名前 (優先度の設定が可能、優先度に関する注意を参照)

  • callback: フォーカスが当たったら呼び出す関数、引数と戻り値:

    • void *data: ポインタ

    • struct t_hashtable *info: フォーカスの情報を含むハッシュテーブルと、他の (より高い優先度を持つ) フォーカスコールバックを呼び出して返された文字列 (以下のテーブルを参照)

    • 戻り値: "info" ポインタ (完全なハッシュテーブル) または新しいハッシュテーブル (コールバックが作成、キーと値は "string" 型) へのポインタ、この新しいハッシュテーブルの内容は info に追加され、他のフォーカスコールバックに渡されます

  • callback_data: WeeChat がコールバックを呼び出す際にコールバックに渡すポインタ

Important
マウスジェスチャの場合、コールバックを 2 回呼び出します: 1 回目はボタンが押された時 (この時のエリアはジェスチャ対象のエリアです)、2 回目はボタンが離された時 (この時のエリアはマスジェスチャを開始したエリアとは異なる場合があります): このため、必ず毎回 コールバックをテストして、ハッシュテーブルに含まれる info を使う前にエリアが一致していることを確認して下さい。

コールバックに送られるハッシュテーブルの内容 (キーと値は "string" 型):

キー (1) 説明 値の例 定義できない場合の値

_x

スクリーン上での列座標

"0" … "n"

_y

スクリーン上での行座標

"0" … "n"

_key

キーまたはマウスイベント

"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" の追加情報:

キー プラグイン (1) 説明

nick

core

ニックネーム

prefix

core

ニックネームのプレフィックス

group

core

グループ名

irc_host

irc

ニックネームのホスト名 (判る場合)

Note
(1) プラグインの名前は hook_focus がどのバー要素に関する情報を渡したかを意味しています (したがって、例えばプラグインが "irc" の場合、ハッシュテーブル info の内容は irc バッファに関するものになります)。

戻り値:

  • 新しいフックへのポインタ、エラーが起きた場合は NULL

C 言語での使用例:

スクリプト (Python) での使用例:

3.11.24. weechat_hook_set

WeeChat バージョン 0.3.9 以上で利用可 (スクリプト: WeeChat バージョン 0.4.3 以上で利用可)。

フックプロパティの文字列値を設定。

プロトタイプ:

引数:

  • hook: "weechat_hook_xxx()" の戻り値

  • property: プロパティ名 (以下の表を参照)

  • value: プロパティの新しい値

プロパティ:

名前 フック型 説明

subplugin

任意の型

任意の文字列

サブプラグインの名前 (通常は /help commandcommand をタイプした時のフックで表示されるスクリプト名)

stdin
(WeeChat バージョン 0.4.3 以上で利用可)

processprocess_hashtable

任意の文字列

子プロセスの標準入力 (stdin) にデータを送信

stdin_close
(WeeChat バージョン 0.4.3 以上で利用可)

processprocess_hashtable

(非使用)

子プロセスの標準入力 (stdin) にデータを送信するパイプを閉じる

signal
(WeeChat バージョン 1.0 以上で利用可)

process'、'process_hashtable

シグナル番号または以下の名前から 1 つ: hup`、`int`、`quit`、`kill`、`term`、`usr1`、`usr2

子プロセスにシグナルを送信

C 言語での使用例:

スクリプト (Python) での使用例:

3.11.25. weechat_unhook

フックを解除。

プロトタイプ:

引数:

  • hook: "weechat_hook_xxx()" の戻り値

C 言語での使用例:

スクリプト (Python) での使用例:

3.11.26. weechat_unhook_all

現在のプラグインで設定したフックをすべて解除。

プロトタイプ:

C 言語での使用例:

スクリプト (Python) での使用例:

3.12. バッファ

バッファを作成/検索/閉じる関数

3.12.1. weechat_buffer_new

新しいバッファを開く。

プロトタイプ:

引数:

  • 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 言語での使用例:

スクリプト (Python) での使用例:

3.12.2. weechat_current_buffer

現在のバッファへのポインタを返す (現在のウィンドウに表示されているバッファ)。

プロトタイプ:

戻り値:

  • 現在のバッファへのポインタ

C 言語での使用例:

スクリプト (Python) での使用例:

バージョン 1.0 で更新。

プラグインおよび名前でバッファを検索。

プロトタイプ:

引数:

  • plugin: プラグインの名前、以下の特殊値を使うことができます:

    • ==: name 引数でバッファの完全な名前を使う (例: freenode.#weechat ではなく irc.freenode.#weechat) (WeeChat バージョン 1.0 以上で利用可)

  • name: バッファの名前、NULL または空文字列の場合、現在のバッファ (現在のウィンドウに表示されているバッファ) を返す; 名前が (?i) で始まる場合、検索は大文字小文字を区別せずに検索 (WeeChat バージョン 1.0 以上で利用可)

戻り値:

  • 見つかったバッファへのポインタ、見つからない場合 NULL

C 言語での使用例:

スクリプト (Python) での使用例:

3.12.4. weechat_buffer_search_main

WeeChat メインバッファ (core バッファ、WeeChat を実行して最初に表示されるバッファ) を検索。

プロトタイプ:

戻り値:

  • WeeChat メインバッファ (core バッファ) へのポインタ

C 言語での使用例:

スクリプト (Python) での使用例:

3.12.5. weechat_buffer_clear

バッファの内容を消去。

プロトタイプ:

引数:

  • buffer: バッファへのポインタ

C 言語での使用例:

スクリプト (Python) での使用例:

3.12.6. weechat_buffer_close

バッファを閉じる。

プロトタイプ:

引数:

  • buffer: バッファへのポインタ

C 言語での使用例:

スクリプト (Python) での使用例:

3.12.7. weechat_buffer_merge

バッファを他のバッファにマージする: 両方のバッファは同じバッファ番号を持つ独立したバッファになり、WeeChat は両方のバッファからの行を表示する (行は混合されます)。

プロトタイプ:

引数:

  • buffer: バッファへのポインタ

  • target_buffer: ターゲットバッファ、マージ先のバッファ

C 言語での使用例:

スクリプト (Python) での使用例:

3.12.8. weechat_buffer_unmerge

マージされたバッファからバッファのマージを解除する。

プロトタイプ:

引数:

  • buffer: バッファへのポインタ

  • number: 分離したバッファの宛先番号、1 より小さい場合、バッファは buffer の番号 + 1 になる

C 言語での使用例:

スクリプト (Python) での使用例:

3.12.9. weechat_buffer_get_integer

バッファプロパティの整数値を返す。

プロトタイプ:

引数:

  • buffer: バッファへのポインタ

  • property: プロパティ名:

    • number: バッファの番号 (1 以上)

    • layout_number: レイアウトに保存されたバッファの番号

    • layout_number_merge_order: レイアウトのマージをする際の順番

    • short_name_is_set: 短い名前が設定されている場合は 1、そうでない場合は 0

    • type: バッファタイプ (0: フォーマット済み、1: 自由内容)

    • notify: バッファの通知レベル

    • num_displayed: バッファを表示しているウィンドウの数

    • active: バッファがマージされて選択されている場合は 2、バッファが選択されている場合は 1、バッファがマージされ選択されていない場合は 0

    • hidden: バッファが隠されている場合は 1、そうでない場合は 0 (WeeChat バージョン 1.0 以上で利用可)

    • zoomed: バッファがマージとズームされている場合は 1、そうでない場合は 0 (WeeChat バージョン 1.0 以上で利用可)

    • print_hooks_enabled: プリントフックが有効化されている場合は 1、そうでない場合は 0

    • day_change: 日付変更メッセージを表示する場合は 1、そうでない場合は 0 (WeeChat バージョン 0.4.3 以上で利用可)

    • clear: コマンド /buffer clear でバッファをクリアできる場合は 1、そうでない場合は 0 (WeeChat バージョン 1.0 以上で利用可)

    • filter: バッファでフィルタが有効な場合は 1、そうでない場合は 0 (WeeChat バージョン 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 言語での使用例:

スクリプト (Python) での使用例:

3.12.10. weechat_buffer_get_string

バッファプロパティの文字列値を返す。

プロトタイプ:

引数:

  • 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 言語での使用例:

スクリプト (Python) での使用例:

3.12.11. weechat_buffer_get_pointer

バッファプロパティのポインタ値を返す。

プロトタイプ:

引数:

  • buffer: バッファへのポインタ

  • property: プロパティ名:

    • plugin: このバッファを作ったプラグインへのポインタ (WeeChat メインバッファの場合は NULL)

    • highlight_regex_compiled: コンパイル済みの正規表現 highlight_regex

戻り値:

  • プロパティのポインタ値

C 言語での使用例:

スクリプト (Python) での使用例:

3.12.12. weechat_buffer_set

バッファプロパティに文字列値を設定。

プロトタイプ:

引数:

  • buffer: バッファへのポインタ

  • property: プロパティ名 (以下の表を参照)

  • value: プロパティの新しい値

プロパティ:

名前 説明

hotlist

"+", "-", WEECHAT_HOTLIST_LOW, WEECHAT_HOTLIST_MESSAGE, WEECHAT_HOTLIST_PRIVATE, WEECHAT_HOTLIST_HIGHLIGHT, "-1"

"+": ホットリストを有効化 (グローバル設定、バッファへのポインタは使われない)
"-": ホットリストを無効化 (グローバル設定、バッファへのポインタは使われない)
優先度: この優先度でホットリストにバッファを追加
"-1": ホットリストからバッファを削除 (WeeChat バージョン 1.0 以上で利用可)

completion_freeze

"0" または "1"

"0": 補完を止める (デフォルト) (グローバル設定、バッファへのポインタは使われない)
"1": コマンドラインが更新された際に補完を継続する (グローバル設定、バッファへのポインタは使われない)

unread

-

バッファの最後の行の後に未読マーカーを設定

display

"1" または "auto"

"1": 指定したバッファを現在のウィンドウに表示
"auto": 指定したバッファを現在のウィンドウに表示、読了マーカーをリセットしない

hidden
(WeeChat バージョン 1.0 以上で利用可)

"0" または "1"

"0": バッファを隠すことを止める
"1": バッファを隠す

number

番号

指定したバッファをこの番号に移動

name

任意の文字列

指定したバッファの新しい名前を設定

short_name

任意の文字列

指定したバッファの新しい短縮名を設定

type

"formatted" または "free"

バッファのタイプを設定: "formatted" (チャットメッセージ用)、または "free" (自由内容用); 値が "free" の場合、clear プロパティは強制的に "0" に設定されます (WeeChat バージョン 1.0 以上で利用可)

notify

"0", "1", "2", "3"

バッファの通知レベルを設定: "0" = ホットリストに追加しない、"1" = ハイライトされた場合のみ追加、"2" = ハイライトされた場合とメッセージを受信した場合に追加、"3" = 任意のメッセージを受信した場合に追加

print_hooks_enabled

"0" or "1"

プリントフックを無効化する場合は "0"、有効化する場合は "1" (新規バッファに対するデフォルト)

day_change
(WeeChat バージョン 0.4.3 以上で利用可)

"0" または "1"

日付変更メッセージを隠す場合は "0"、表示する場合は "1" (新規バッファに対するデフォルト)

clear
(WeeChat バージョン 1.0 以上で利用可)

"0" または "1"

ユーザからのコマンド /buffer clear でバッファのクリアを禁止する場合は "0"、 バッファのクリアを許可する場合は "1" (新規バッファに対するデフォルト) (注意: この値が "0" に設定されていたとしても、関数 weechat_buffer_clear を使えばバッファをクリアすることが可能です)

filter
(WeeChat バージョン 1.0 以上で利用可)

"0" または "1"

"0": バッファでフィルタを無効化
"1": バッファでフィルタを有効化

title

任意の文字列

指定したバッファの新しいタイトルを設定

time_for_each_line

"0" または "1"

バッファのすべての行に時間を表示しない場合は "0"、表示する場合は "1" (新規バッファに対するデフォルト)

nicklist

"0" または "1"

バッファのニックネームリストを表示しない場合は "0"、表示する場合は "1"

nicklist_case_sensitive

"0" または "1"

ニックネームリストで大文字小文字を区別しない場合は "0"、区別する場合は "1"

nicklist_display_groups

"0" または "1"

ニックネームリストグループを隠す場合は "0"、表示する場合は "1"

highlight_words

"-" または単語のコンマ区切りリスト

任意のハイライトを無効化する場合は特殊値 "-"、または指定したバッファ内でハイライトする単語のコンマ区切りリスト、例: "abc,def,ghi"

highlight_words_add

単語のコンマ区切りリスト

指定したバッファ内でハイライトする単語のコンマ区切りリスト、 これらの単語を指定したバッファ内でハイライトする単語に追加します

highlight_words_del

単語のコンマ区切りリスト

指定したバッファ内でハイライトする単語から削除する単語のコンマ区切りリスト

highlight_regex

任意の文字列

ハイライトする POSIX 拡張正規表現

highlight_tags_restrict

タグのコンマ区切りリスト

指定したバッファ内でこれらのタグをつけられたメッセージだけを対象にハイライトする (区切り文字 "+" で論理 "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 言語での使用例:

スクリプト (Python) での使用例:

3.12.13. weechat_buffer_set_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: プロパティの新しいポインタ値

コールバックのプロトタイプ:

C 言語での使用例:

Note
スクリプト API ではこの関数を利用できません。

3.12.14. weechat_buffer_string_replace_local_var

文字列に含まれるバッファローカル変数をその値で展開する。

プロトタイプ:

引数:

  • buffer: バッファへのポインタ

  • string: テキストおよび "$var" フォーマットのローカル変数を含む文字列

戻り値:

  • ローカル変数を展開した文字列

C 言語での使用例:

スクリプト (Python) での使用例:

3.12.15. weechat_buffer_match_list

WeeChat バージョン 0.3.5 以上で利用可。

バッファがバッファのリストにマッチすることを確認。

プロトタイプ:

引数:

  • buffer: バッファへのポインタ

  • string: バッファのコンマ区切りリスト:

    • "*" 任意のバッファにマッチ

    • 名前の最初に "!" がある場合はその名前を含まない場合にマッチ

    • 名前にワイルドカード "*" を使うことができます

戻り値:

  • バッファがバッファリストにマッチする場合は 1、そうでない場合は 0

C 言語での使用例:

スクリプト (Python) での使用例:

3.13. ウィンドウ

ウィンドウを操作する関数。

3.13.1. weechat_current_window

現在のウィンドウへのポインタを返す。

プロトタイプ:

戻り値:

  • 現在のウィンドウへのポインタ

C 言語での使用例:

スクリプト (Python) での使用例:

3.13.2. weechat_window_search_with_buffer

WeeChat バージョン 0.3.5 以上で利用可。

バッファを表示しているウィンドウへのポインタを返す。

プロトタイプ:

引数:

  • buffer: バッファへのポインタ

戻り値:

  • バッファを表示しているウィンドウへのポインタ (バッファを表示しているウィンドウが無い場合は NULL)

C 言語での使用例:

スクリプト (Python) での使用例:

3.13.3. weechat_window_get_integer

ウィンドウプロパティの整数値を返す。

プロトタイプ:

引数:

  • 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 言語での使用例:

スクリプト (Python) での使用例:

3.13.4. weechat_window_get_string

ウィンドウプロパティの文字列値を返す。

Note
現在この関数を使うことはできません、将来のバージョン用に予約されています。

プロトタイプ:

引数:

  • window: ウィンドウへのポインタ

  • property: プロパティ名

戻り値:

  • プロパティの文字列値

3.13.5. weechat_window_get_pointer

ウィンドウプロパティのポインタ値を返す。

プロトタイプ:

引数:

  • window: ウィンドウへのポインタ

  • property: プロパティ名:

    • current: 現在のウィンドウへのポインタ

    • buffer: 指定したウィンドウが表示しているバッファへのポインタ

戻り値:

  • プロパティのポインタ値

C 言語での使用例:

スクリプト (Python) での使用例:

3.13.6. weechat_window_set_title

ターミナルのタイトルを設定。

プロトタイプ:

引数:

  • title: ターミナルの新しいタイトル (タイトルをリセットする場合は NULL)

C 言語での使用例:

スクリプト (Python) での使用例:

3.14. ニックネームリスト

バッファのニックネームリストを操作する関数。

3.14.1. weechat_nicklist_add_group

ニックネームリストにグループを追加。

プロトタイプ:

引数:

  • buffer: バッファへのポインタ

  • parent_group: グループの親へのポインタ、グループに親がない場合 NULL (ニックネームリスト)

  • name: グループ名

  • color: 色オプション名:

    • WeeChat オプション名、例えば weechat.color.nicklist_group

    • 任意で背景色をつけた色、例えば yellowyellow,red

    • バーの色名:

      • bar_fg: バーの前景色

      • bar_delim: バーの区切り文字

      • bar_bg: バーの背景色

  • visible:

    • 1: グループとサブグループおよびニックネームを表示

    • 0: グループとサブグループおよびニックネームを非表示

Note
グループ名の前に、1 桁以上の数字とパイプ文字を付けると、この数字を使ってニックネームリスト内のグループをソートします。例えば、グループ "1|test" と "2|abc" はこの順番で表示されます: 最初に "test" その後に "abc"。

戻り値:

  • 新しいグループへのポインタ、エラーが起きた場合は NULL

C 言語での使用例:

スクリプト (Python) での使用例:

3.14.2. weechat_nicklist_search_group

ニックネームリストからグループを検索。

プロトタイプ:

引数:

  • buffer: バッファへのポインタ

  • from_group: このグループのみを検索、全てのニックネームリストから検索する場合は NULL

  • name: 検索するグループ名

戻り値:

  • 見つかったグループへのポインタ、見つからなかった場合は NULL

C 言語での使用例:

スクリプト (Python) での使用例:

3.14.3. weechat_nicklist_add_nick

ニックネームをグループに追加。

プロトタイプ:

引数:

  • buffer: バッファへのポインタ

  • group: グループへのポインタ

  • name: ニックネーム

  • color: 色オプション名:

    • WeeChat オプション名 (weechat.color.xxx のオプション部分)、例えば chat_delimiters

    • 任意で背景色をつけた色、例えば yellowyellow,red

    • バーの色名:

      • bar_fg: バーの前景色

      • bar_delim: バーの区切り文字

      • bar_bg: バーの背景色

  • prefix: ニックネームの前に表示するプレフィックス

  • prefix_color: 色オプション名:

    • WeeChat オプション名 (weechat.color.xxx のオプション部分)、例えば chat_delimiters

    • 任意で背景色をつけた色、例えば yellowyellow,red

    • バーの色名:

      • bar_fg: バーの前景色

      • bar_delim: バーの区切り文字

      • bar_bg: バーの背景色

  • visible:

    • 1: ニックネームを表示

    • 0: ニックネームを非表示

戻り値:

  • 新しいニックネームへのポインタ、エラーが起きた場合は NULL

C 言語での使用例:

スクリプト (Python) での使用例:

3.14.4. weechat_nicklist_search_nick

ニックネームリストからニックネームを検索。

プロトタイプ:

引数:

  • buffer: バッファへのポインタ

  • from_group: このグループのみを検索、全てのニックネームリストから検索する場合は NULL

  • name: 検索するニックネーム

戻り値:

  • 見つかったニックネームへのポインタ、見つからなかった場合は NULL

C 言語での使用例:

スクリプト (Python) での使用例:

3.14.5. weechat_nicklist_remove_group

ニックネームリストからグループを削除。

プロトタイプ:

引数:

  • buffer: バッファへのポインタ

  • group: 削除するグループへのポインタ (同時に全てのサブグループおよびニックネームを削除)

C 言語での使用例:

スクリプト (Python) での使用例:

3.14.6. weechat_nicklist_remove_nick

ニックネームリストからニックネームを削除。

プロトタイプ:

引数:

  • buffer: バッファへのポインタ

  • nick: 削除するニックネームへのポインタ

C 言語での使用例:

スクリプト (Python) での使用例:

3.14.7. weechat_nicklist_remove_all

ニックネームリストから全てのグループおよびニックネームを削除。

プロトタイプ:

引数:

  • buffer: バッファへのポインタ

C 言語での使用例:

スクリプト (Python) での使用例:

3.14.8. weechat_nicklist_get_next_item

WeeChat バージョン 0.3.7 以上で利用可。

ニックネームリストから次のグループまたはニックネームを取得 (主にニックネームリストを表示する際に利用)。

プロトタイプ:

引数:

  • buffer: バッファへのポインタ

  • group: グループへのポインタへのポインタ

  • nick: ニックネームへのポインタへのポインタ

C 言語での使用例:

Note
スクリプト API ではこの関数を利用できません。

3.14.9. weechat_nicklist_group_get_integer

WeeChat バージョン 0.3.4 以上で利用可。

グループプロパティの整数値を返す。

プロトタイプ:

引数:

  • buffer: バッファへのポインタ

  • group: グループへのポインタ

  • property: プロパティ名:

    • visible: グループが表示されている場合は 1、そうでない場合は 0

    • level: グループレベル (ルートは 0)

戻り値:

  • プロパティの整数値

C 言語での使用例:

スクリプト (Python) での使用例:

3.14.10. weechat_nicklist_group_get_string

WeeChat バージョン 0.3.4 以上で利用可。

グループプロパティの文字列値を返す。

プロトタイプ:

引数:

  • buffer: バッファへのポインタ

  • group: グループへのポインタ

  • property: プロパティ名:

    • name: グループの名前

    • color: ニックネームリストのグループ色

戻り値:

  • プロパティの文字列値

C 言語での使用例:

スクリプト (Python) での使用例:

3.14.11. weechat_nicklist_group_get_pointer

WeeChat バージョン 0.3.4 以上で利用可。

グループプロパティのポインタ値を返す。

プロトタイプ:

引数:

  • buffer: バッファへのポインタ

  • group: グループへのポインタ

  • property: プロパティ名:

    • parent: 親グループへのポインタ

戻り値:

  • プロパティのポインタ値

C 言語での使用例:

スクリプト (Python) での使用例:

3.14.12. weechat_nicklist_group_set

WeeChat バージョン 0.3.4 以上で利用可。

グループプロパティの文字列値。

プロトタイプ:

引数:

  • buffer: バッファへのポインタ

  • group: グループへのポインタ

  • property: プロパティ名 (以下の表を参照)

  • value: プロパティの新しい値

プロパティ:

名前 説明

color

WeeChat 色オプション名

関数 weechat_nicklist_add_group の引数 "color" を参照

visible

"0"、"1"

"0" = 非表示状態のグループ、"1" = 表示状態のグループ

C 言語での使用例:

スクリプト (Python) での使用例:

3.14.13. weechat_nicklist_nick_get_integer

WeeChat バージョン 0.3.4 以上で利用可。

ニックネームプロパティの整数値を返す。

プロトタイプ:

引数:

  • buffer: バッファへのポインタ

  • nick: ニックネームへのポインタ

  • property: プロパティ名:

    • visible: 表示状態のニックネームの場合 1、それ以外の場合は 0

戻り値:

  • プロパティの整数値

C 言語での使用例:

スクリプト (Python) での使用例:

3.14.14. weechat_nicklist_nick_get_string

WeeChat バージョン 0.3.4 以上で利用可。

ニックネームプロパティの文字列値を返す。

プロトタイプ:

引数:

  • buffer: バッファへのプロパティ

  • nick: ニックネームへのポインタ

  • property: プロパティ名:

    • name: ニックネームの名前

    • color: ニックネームリスト内でのニックネームの色

    • prefix: ニックネームのプレフィックス

    • prefix_color: ニックネームリスト内でのプレフィックスの色

戻り値:

  • プロパティの文字列値

C 言語での使用例:

スクリプト (Python) での使用例:

3.14.15. weechat_nicklist_nick_get_pointer

WeeChat バージョン 0.3.4 以上で利用可。

ニックネームプロパティのポインタ値を返す。

プロトタイプ:

引数:

  • buffer: バッファへのポインタ

  • nick: ニックネームへのポインタ

  • property: プロパティ名:

    • group: 指定したニックネームを含むグループへのポインタ

戻り値:

  • プロパティのポインタ値

C 言語での使用例:

スクリプト (Python) での使用例:

3.14.16. weechat_nicklist_nick_set

WeeChat バージョン 0.3.4 以上で利用可。

ニックネームプロパティの文字列値を設定。

プロトタイプ:

引数:

  • buffer: バッファへのポインタ

  • nick: ニックネームへのポインタ

  • property: プロパティ名 (以下の表を参照)

  • value: プロパティの新しい値

プロパティ:

名前 説明

color

WeeChat 色オプション名

関数 weechat_nicklist_add_nick の引数 "color" を参照

prefix

任意の文字列

指定したニックネームのプレフィックス

prefix_color

WeeChat color option name

関数 weechat_nicklist_add_nick の引数 "prefix_color" を参照

visible

"0", "1"

"0" = 非表示状態のニックネーム、"1" = 表示状態のニックネーム

C 言語での使用例:

スクリプト (Python) での使用例:

3.15. バー

バーを操作する関数。

バー要素を検索。

プロトタイプ:

引数:

  • name: バー要素の名前

戻り値:

  • 見つかったバー要素へのポインタ、バー要素が見つからない場合 NULL

C 言語での使用例:

スクリプト (Python) での使用例:

3.15.2. weechat_bar_item_new

バージョン 0.4.2 で更新。

新しいバー要素を作成。

プロトタイプ:

引数:

  • 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 言語での使用例:

スクリプト (Python) での使用例:

Important
0.4.1 より古いバージョンに対する互換性のために、デフォルトのコールバックに渡す引数の個数は 3 個です: dataitemwindow (bufferextra_info は渡されません)。
全ての引数を受け取るコールバックを使う場合は、名前の前に "(extra)" をつけてください、以下の例を参照 (WeeChat ≥ 0.4.2 でのみ有効)。

3.15.3. weechat_bar_item_update

build コールバックを呼び出してバー要素の内容を更新。

プロトタイプ:

引数:

  • name: バー要素の名前

C 言語での使用例:

スクリプト (Python) での使用例:

3.15.4. weechat_bar_item_remove

バー要素を削除。

プロトタイプ:

引数:

  • item: バー要素へのポインタ

C 言語での使用例:

スクリプト (Python) での使用例:

バーを検索。

プロトタイプ:

引数:

  • name: バーの名前

戻り値:

  • 見つかったバーへのポインタ、見つからなかった場合は NULL

C 言語での使用例:

スクリプト (Python) での使用例:

3.15.6. weechat_bar_new

新しいバーを作成。

プロトタイプ:

引数:

  • name: バーの名前

  • hidden:

    • on: バーを非表示

    • off: バーを表示

  • priority: バーの優先度 (整数)

  • type:

    • root: ウィンドウの外に 1 回だけ表示されたバー

    • window: 各ウィンドウに表示されたバー

  • condition: バーの表示位置:

    • active: アクティブウィンドウのみに表示されているバー

    • inactive: 非アクティブウィンドウのみに表示されているバー

    • nicklist: ニックネームリストを持つウィンドウに表示されているバー

    • 評価された式: WeeChat ユーザガイド のバーに関する章を参照

  • position: topbottomleftright

  • 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 言語での使用例:

スクリプト (Python) での使用例:

3.15.7. weechat_bar_set

バープロパティに新しい値を設定。

プロトタイプ:

引数:

  • 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 を参照)

  • value: プロパティの新しい値

戻り値:

  • 新しい値を設定した場合は 1、エラーが起きた場合は 0

C 言語での使用例:

スクリプト (Python) での使用例:

3.15.8. weechat_bar_update

スクリーン上のバーの内容を更新。

プロトタイプ:

引数:

  • name: バーの名前

C 言語での使用例:

スクリプト (Python) での使用例:

3.15.9. weechat_bar_remove

バーを削除。

プロトタイプ:

引数:

  • bar: バーへのポインタ

C 言語での使用例:

スクリプト (Python) での使用例:

3.16. コマンド

WeeChat コマンドを実行する関数。

3.16.1. weechat_command

バージョン 1.1 で更新。

コマンドを実行。

プロトタイプ:

引数:

  • buffer: バッファへのポインタ (コマンドは指定したバッファで実行されます、現在のバッファで実行するには NULL を指定してください)

  • command: 実行するコマンド ("/" で始まっている場合)、またはバッファに送信するテキスト

戻り値: (WeeChat バージョン 1.1 以上で利用可)

  • WEECHAT_RC_OK 成功した場合

  • WEECHAT_RC_ERROR エラーが起きた場合

C 言語での使用例:

スクリプト (Python) での使用例:

3.17. ネットワーク

ネットワーク関数。

3.17.1. weechat_network_pass_proxy

プロキシへの接続および認証を確立する。

Important
この関数は connect() の呼び出しを遮断します、このため connect() を呼び出す場合は WeeChat がこれを遮断しないように必ずフォークしたプロセスの中で行ってください。

プロトタイプ:

引数:

  • proxy: 使用するプロキシ名

  • sock: 使用するソケット

  • address: アドレス (ホスト名または IP アドレス)

  • port: ポート番号

戻り値:

  • 接続が確立された場合は 1、エラーが起きた場合は 0

C 言語での使用例:

Note
スクリプト API ではこの関数を利用できません。

3.17.2. weechat_network_connect_to

バージョン 0.4.3 で更新。

リモートホストとの接続を確立する。

Important
この関数は connect() の呼び出しを遮断します、このため connect() を呼び出す場合は WeeChat がこれを遮断しないように必ずフォークしたプロセスの中で行ってください。

プロトタイプ:

引数:

  • proxy: 使用するプロキシ名

  • address: 接続先のアドレス (ポート番号を含む)

  • address_length: 引数 address の長さ

戻り値:

  • 接続が確立した場合はソケット番号 (>= 0)、エラーが起きた場合は -1

C 言語での使用例:

Note
スクリプト API ではこの関数を利用できません。

3.18. 情報

情報を取得する関数。

3.18.1. weechat_info_get

文字列型で WeeChat またはプラグインからの情報を返す。

プロトタイプ:

引数:

  • info_name: 読み出す情報の名前 (以下の表を参照)

  • arguments: 指定した情報に対する引数 (任意、引数を指定しない場合は NULL)

戻り値:

  • 指定した情報を含む文字列、エラーが起きた場合は NULL

情報:

プラグイン 名前 説明 引数

aspell

aspell_dict

バッファで使用中の辞書のコンマ区切りリスト

バッファポインタ ("0x12345678") またはバッファのフルネーム ("irc.freenode.#weechat")

fifo

fifo_filename

FIFO パイプの名前

-

irc

irc_buffer

ある IRC サーバ/チャンネル/ニックネームのバッファポインタを取得

server,channel,nick (channel と nick は任意)

irc

irc_is_channel

文字列がサーバの有効な IRC チャンネル名なら 1

サーバ、チャンネル (サーバは任意)

irc

irc_is_nick

文字列が有効な IRC ニックネームなら 1

ニックネーム

irc

irc_nick

あるサーバの現在のニックネームを取得

サーバ名

irc

irc_nick_color

ニックネームの色コードを取得

ニックネーム

irc

irc_nick_color_name

ニックネームの色名を取得

ニックネーム

irc

irc_nick_from_host

IRC ホストからニックネームを取得

IRC ホスト (例: :nick!name@server.com)

irc

irc_server_isupport

サーバがこの機能がサポートする場合は 1 (IRC メッセージ 005 を使う)

server,feature

irc

irc_server_isupport_value

サーバがサポートする場合、機能の値 (IRC メッセージ 005 を使う)

server,feature

python

python2_bin

python 2.x インタプリタへのパス

-

relay

relay_client_count

中継するクライアントのリスト

状態名 (任意): connecting、waiting_auth、connected、auth_failed、disconnected

weechat

charset_internal

WeeChat 内部文字集合

-

weechat

charset_terminal

ターミナルの文字集合

-

weechat

color_ansi_regex

ANSI エスケープコードを検索する POSIX 拡張正規表現

-

weechat

color_rgb2term

ターミナル色コード (0-255) に変換されたRGB 色コード

rgb,limit (limit は任意でデフォルトでは 256 に設定)

weechat

color_term2rgb

RGB 色コードに変換されたターミナル色コード (0-255)

色コード (ターミナル色コード: 0-255)

weechat

cursor_mode

カーソルモードが有効の場合 1

-

weechat

date

WeeChat のコンパイル日

-

weechat

dir_separator

ディレクトリ区切り

-

weechat

filters_enabled

フィルタが有効の場合 1

-

weechat

inactivity

キーボード未使用時間 (秒)

-

weechat

locale

翻訳メッセージに利用するロケール

-

weechat

term_height

ターミナルの高さ

-

weechat

term_width

ターミナルの幅

-

weechat

version

WeeChat のバージョン

-

weechat

version_git

WeeChat の git バージョン (開発バージョンではコマンド "git describe" の出力、安定版リリースでは空文字が出力されます)

-

weechat

version_number

WeeChat のバージョン (数字)

-

weechat

weechat_dir

WeeChat ディレクトリ

-

weechat

weechat_libdir

WeeChat "lib" ディレクトリ

-

weechat

weechat_localedir

WeeChat "locale" ディレクトリ

-

weechat

weechat_sharedir

WeeChat "share" ディレクトリ

-

weechat

weechat_site

WeeChat サイト

-

weechat

weechat_site_download

WeeChat サイト、ダウンロードページ

-

weechat

weechat_upgrading

WeeChat がアップグレード中は 1 (コマンド /upgrade)

-

C 言語での使用例:

スクリプト (Python) での使用例:

3.18.2. weechat_info_get_hashtable

WeeChat バージョン 0.3.4 以上で利用可。

ハッシュテーブルで WeeChat またはプラグインからの情報を返す。

プロトタイプ:

引数:

  • info_name: 読み出す情報の名前 (以下の表を参照)

  • hashtable: 引数を含むハッシュテーブル (指定した情報に依存) (任意、引数を指定しない場合は NULL)

戻り値:

  • 指定した情報を含むハッシュテーブル、エラーが起きた場合は NULL

情報:

プラグイン 名前 説明 ハッシュテーブル (入力) ハッシュテーブル (出力)

irc

irc_message_parse

IRC メッセージを解析

"message": IRC メッセージ、"server": サーバ名 (任意)

"tags": タグ、"message_without_tags": タグを含まないメッセージ、"nick": ニックネーム、"host": ホスト名、"command": コマンド、"channel": チャンネル、"arguments": 引数 (チャンネルを含む)

irc

irc_message_split

IRC メッセージを分割 (512 バイトに収める)

"message": IRC メッセージ、"server": サーバ名 (任意)

"msg1" … "msgN": 送信メッセージ (最後の "\r\n" は無し), "args1" … "argsN": メッセージの引数、"count": メッセージの数

C 言語での使用例:

スクリプト (Python) での使用例:

3.19. インフォリスト

インフォリストは "要素" の配列であり、各要素には変数が含まれています。

例えば、インフォリスト "irc_server" には N 個 (N は定義済みの IRC サーバの数) の要素が含まれています。それぞれの要素には "name"、"buffer"、"is_connected" などの変数が含まれています。

各要素には型と値があり、以下の型を使うことができます:

  • integer: 任意の整数値

  • string: 任意の文字列値

  • pointer: 任意のポインタ

  • buffer: 任意のデータを含む固定長のバッファ

  • time: 時刻値

3.19.1. weechat_infolist_new

新しいインフォリストを作成。

プロトタイプ:

戻り値:

  • 新しいインフォリストへのポインタ

C 言語での使用例:

スクリプト (Python) での使用例:

3.19.2. weechat_infolist_new_item

インフォリストに要素を追加。

プロトタイプ:

引数:

  • infolist: インフォリストへのポインタ

戻り値:

  • 新しい要素へのポインタ

C 言語での使用例:

スクリプト (Python) での使用例:

3.19.3. weechat_infolist_new_var_integer

インフォリストの要素に整数変数を追加。

プロトタイプ:

引数:

  • item: インフォリストの要素へのポインタ

  • name: 変数名

  • value: 整数値

戻り値:

  • 新しい値へのポインタ

C 言語での使用例:

スクリプト (Python) での使用例:

3.19.4. weechat_infolist_new_var_string

インフォリストの要素に文字列変数を追加。

プロトタイプ:

引数:

  • item: インフォリストの要素へのポインタ

  • name: 変数名

  • value: 文字列値

戻り値:

  • 新しい値へのポインタ

C 言語での使用例:

スクリプト (Python) での使用例:

3.19.5. weechat_infolist_new_var_pointer

インフォリストの要素にポインタ変数を追加。

プロトタイプ:

引数:

  • item: インフォリストの要素へのポインタ

  • name: 変数名

  • pointer: ポインタ

戻り値:

  • 新しい値へのポインタ

C 言語での使用例:

スクリプト (Python) での使用例:

3.19.6. weechat_infolist_new_var_buffer

インフォリストの要素にバッファ変数を追加。

プロトタイプ:

引数:

  • item: インフォリストの要素へのポインタ

  • name: 変数名

  • pointer: バッファへのポインタ

  • size: バッファのサイズ

戻り値:

  • 新しい値へのポインタ

C 言語での使用例:

Note
スクリプト API ではこの関数を利用できません。

3.19.7. weechat_infolist_new_var_time

インフォリストの要素に時刻変数を追加。

プロトタイプ:

引数:

  • item: インフォリストの要素へのポインタ

  • name: 変数名

  • time: 時刻値

戻り値:

  • 新しい値へのポインタ

C 言語での使用例:

スクリプト (Python) での使用例:

3.19.8. weechat_infolist_get

WeeChat またはプラグインからインフォリストを返す。

Important
インフォリストの内容は実データの複製です。そのため多くのデータを含むインフォリスト ("buffer_lines" など) を要求した場合、WeeChat は全てのデータを複製するのに必要なメモリを確保し、これにはある程度時間がかかります。
大きなインフォリストを使う代わりに、hdata を使うほうが望ましいです (ただしインフォリストは生データである hdata よりも多くの情報を含む場合があります)、hdata を参照してください。

プロトタイプ:

引数:

  • infolist_name: 読み出すインフォリストの名前 (以下の表を参照)

  • pointer: 要素へのポインタ、インフォリストからこの要素のみを取得する場合に指定 (任意、NULL でも可)

  • arguments: 指定したインフォリストに対する引数 (任意、引数が不要の場合は NULL)

戻り値:

  • インフォリストへのポインタ、エラーが起きた場合は NULL

インフォリスト:

プラグイン 名前 説明 ポインタ 引数

alias

alias

別名のリスト

別名のポインタ (任意)

別名の名前 (ワイルドカード "*" を使うことができます) (任意)

guile

guile_script

スクリプトのリスト

スクリプトポインタ (任意)

スクリプト名 (ワイルドカード "*" を使うことができます) (任意)

irc

irc_channel

IRC サーバのチャンネルリスト

チャンネルポインタ (任意)

server,channel (チャンネルは任意)

irc

irc_color_weechat

IRC 色コードと WeeChat 色名の対応

-

-

irc

irc_ignore

IRC 無視のリスト

無視ポインタ (任意)

-

irc

irc_nick

IRC チャンネルのニックネームのリスト

ニックネームポインタ (任意)

サーバ、チャンネル、ニックネーム (ニックネームは任意)

irc

irc_notify

通知のリスト

通知ポインタ (任意)

サーバ名 (ワイルドカード "*" を使うことができます) (任意)

irc

irc_server

IRC サーバのリスト

サーバポインタ (任意)

サーバ名 (ワイルドカード "*" を使うことができます) (任意)

logger

logger_buffer

logger バッファのリスト

logger ポインタ (任意)

-

lua

lua_script

スクリプトのリスト

スクリプトポインタ (任意)

スクリプト名 (ワイルドカード "*" を使うことができます) (任意)

perl

perl_script

スクリプトのリスト

スクリプトポインタ (任意)

スクリプト名 (ワイルドカード "*" を使うことができます) (任意)

python

python_script

スクリプトのリスト

スクリプトポインタ (任意)

スクリプト名 (ワイルドカード "*" を使うことができます) (任意)

relay

relay

リレークライアントのリスト

リレーポインタ (任意)

-

ruby

ruby_script

スクリプトのリスト

スクリプトポインタ (任意)

スクリプト名 (ワイルドカード "*" を使うことができます) (任意)

script

script_script

スクリプトのリスト

スクリプトポインタ (任意)

拡張子を含めたスクリプト名 (ワイルドカード "*" を使うことができます) (任意)

tcl

tcl_script

スクリプトのリスト

スクリプトポインタ (任意)

スクリプト名 (ワイルドカード "*" を使うことができます) (任意)

weechat

bar

バーのリスト

バーポインタ (任意)

バー名 (ワイルドカード "*" を使うことができます) (任意)

weechat

bar_item

バーアイテムのリスト

バーアイテムポインタ (任意)

バーアイテム名 (ワイルドカード "*" を使うことができます) (任意)

weechat

bar_window

バーウィンドウのリスト

バーウィンドウポインタ (任意)

-

weechat

buffer

バッファのリスト

バッファポインタ (任意)

バッファ名 (ワイルドカード "*" を使うことができます) (任意)

weechat

buffer_lines

バッファの行数

バッファポインタ

-

weechat

filter

フィルタのリスト

-

フィルタ名 (ワイルドカード "*" を使うことができます) (任意)

weechat

history

コマンドの履歴

バッファポインタ (ワイルドカードとして "*" で始めるか終われる) (任意)

-

weechat

hook

フックリスト

フックポインタ (任意)

type,arguments (type はコマンド/タイマー/..、arguments はいくつかのフックで必要 (ワイルドカード "*" を使うことができます)、両方とも任意)

weechat

hotlist

ホットリストに含まれるバッファ

-

-

weechat

key

キー割り当てのリスト

-

コンテキスト ("default"、"search"、"cursor"、"mouse") (任意)

weechat

layout

レイアウトのリスト

-

-

weechat

nicklist

バッファのニックネームリスト内のニックネーム

バッファポインタ

ニックネーム/グループ xxx のみについて取得するには nick_xxx または group_xxx を使う (任意)

weechat

option

オプションリスト

-

オプション名 (ワイルドカード "*" を使うことができます) (任意)

weechat

plugin

プラグインリスト

プラグインポインタ (任意)

プラグイン名 (ワイルドカード "*" を使うことができます) (任意)

weechat

proxy

プロキシリスト

プロキシポインタ (任意)

プロキシ名 (ワイルドカード "*" を使うことができます) (任意)

weechat

url_options

URL のオプション

-

-

weechat

window

ウィンドウリスト

ウィンドウポインタ (任意)

"current" は現在のウィンドウまたはウィンドウ番号 (任意)

xfer

xfer

xfer のリスト

xfer ポインタ (任意)

-

C 言語での使用例:

スクリプト (Python) での使用例:

3.19.9. weechat_infolist_next

"カーソル" をインフォリスト内の 1 つ後の要素に移動する。あるインフォリストに対するこの関数の呼び出し回数が 1 回目のの場合は、カーソルをインフォリスト内の最初の要素に移動する。

プロトタイプ:

引数:

  • infolist: インフォリストへのポインタ

戻り値:

  • カーソルが 1 つ後の要素に移動した場合は 1、リストの最後に到達した場合は 0

C 言語での使用例:

スクリプト (Python) での使用例:

3.19.10. weechat_infolist_prev

"カーソル" をインフォリスト内の 1 つ前の要素に移動する。あるインフォリストに対するこの関数の呼び出し回数が 1 回目のの場合は、カーソルをインフォリスト内の最後の要素に移動する。

プロトタイプ:

引数:

  • infolist: インフォリストへのポインタ

戻り値:

  • カーソルが 1 つ前の要素に移動した場合は 1、リストの最初に到達した場合は 0

C 言語での使用例:

スクリプト (Python) での使用例:

3.19.11. weechat_infolist_reset_item_cursor

インフォリストの"カーソル"をリセット。

プロトタイプ:

引数:

  • infolist: インフォリストへのポインタ

C 言語での使用例:

スクリプト (Python) での使用例:

3.19.12. weechat_infolist_search_var

WeeChat バージョン 0.4.3 以上で利用可。

現在のインフォリスト要素から変数を検索。

プロトタイプ:

引数:

  • infolist: インフォリストへのポインタ

  • name: 変数名

戻り値:

  • 見つかった変数へのポインタ、見つからない場合は NULL

C 言語での使用例:

スクリプト (Python) での使用例:

3.19.13. weechat_infolist_fields

現在のインフォリストの要素に対するフィールドのリストを返す。

プロトタイプ:

引数:

  • infolist: インフォリストへのポインタ

戻り値:

  • 指定したインフォリストの要素に含まれる変数名のリスト。以下の変数名に対応する型の文字を含むコンマ区切りリスト、型は: "i" (整数)、"s" (文字列)、"p" (ポインタ)、"b" (バッファ)、"t" (時刻)。

C 言語での使用例:

スクリプト (Python) での使用例:

3.19.14. weechat_infolist_integer

現在のインフォリストの要素に含まれる整数変数の値を返す。

プロトタイプ:

引数:

  • infolist: インフォリストへのポインタ

  • var: 変数名 (必ず"整数"型)

戻り値:

  • 変数の整数値

C 言語での使用例:

スクリプト (Python) での使用例:

3.19.15. weechat_infolist_string

現在のインフォリストの要素に含まれる文字列変数の値を返す。

プロトタイプ:

引数:

  • infolist: インフォリストへのポインタ

  • var: 変数名 (必ず"文字列"型)

戻り値:

  • 変数の文字列値

C 言語での使用例:

スクリプト (Python) での使用例:

3.19.16. weechat_infolist_pointer

現在のインフォリストの要素に含まれるポインタ変数の値を返す。

プロトタイプ:

引数:

  • infolist: インフォリストへのポインタ

  • var: 変数名 (必ず"ポインタ"型)

戻り値:

  • 変数のポインタ値

C 言語での使用例:

スクリプト (Python) での使用例:

3.19.17. weechat_infolist_buffer

現在のインフォリストの要素に含まれるバッファ変数の値を返す。

プロトタイプ:

引数:

  • infolist: インフォリストへのポインタ

  • var: 変数名 (必ず"バッファ"型)

  • size: 整数変数へのポインタ、バッファサイズを返す

戻り値:

  • バッファへのポインタ

C 言語での使用例:

Note
スクリプト API ではこの関数を利用できません。

3.19.18. weechat_infolist_time

現在のインフォリストの要素に含まれる時刻変数の値を返す。

プロトタイプ:

引数:

  • infolist: インフォリストへのポインタ

  • var: 変数名 (必ず"時刻"型)

戻り値:

  • 変数の時刻値

C 言語での使用例:

スクリプト (Python) での使用例:

3.19.19. weechat_infolist_free

インフォリストの領域を開放。

プロトタイプ:

引数:

  • infolist: インフォリストへのポインタ

C 言語での使用例:

スクリプト (Python) での使用例:

3.20. Hdata

hdata に対する関数 (WeeChat またはプラグインデータへの直アクセス)。

Important
hdata を使うことで読み取り専用でデータにアクセスできます。hdata 変数が示すメモリ領域に何かを書き込むことは厳禁 です。
データを更新する場合は必ず関数 weechat_hdata_update を使ってください。

3.20.1. weechat_hdata_new

WeeChat バージョン 0.3.6 以上で利用可、バージョン 0.3.9 と 0.4.0 で更新。

新規の hdata を作成。

Note
hdata vs インフォリスト

Hdata を使うことで高速に WeeChat およびプラグインのデータを読み出す事ができます。hdata はインフォリストと似ていますが、異なる点もあります:

  • hdata はインフォリストに比べて高速でメモリを節約できる: データを複製せずに直接読み出す。

  • hdata とインフォリストのデータは異なる場合がある: hdata 構造体には生データ以外は含まれない (利便性を考慮してインフォリストには余分なデータが追加されている)

プロトタイプ:

引数:

  • 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 を参照)

    • return value: 更新された変数の数

  • callback_update_data: WeeChat が update コールバックを呼び出す際にコールバックに渡すポインタ (WeeChat バージョン 0.3.9 以上で利用可)

戻り値:

  • 新しい hdata へのポインタ

C 言語での使用例:

Note
スクリプト API ではこの関数を利用できません。

3.20.2. weechat_hdata_new_var

WeeChat バージョン 0.3.6 以上で利用可、バージョン 0.3.9 で更新。

hdata に新しい変数を作成。

プロトタイプ:

引数:

  • 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 言語での使用例:

コードを短くするためにはマクロ "WEECHAT_HDATA_VAR" を使います。

Note
スクリプト API ではこの関数を利用できません。

3.20.3. weechat_hdata_new_list

WeeChat バージョン 0.3.6 以上で利用可、バージョン 1.0 で更新。

hdata に新しいリストへのポインタを作成。

プロトタイプ:

引数:

  • hdata: hdata へのポインタ

  • name: 変数名

  • pointer: リストへのポインタ

  • flags: 以下の値の組み合わせ: (WeeChat バージョン 1.0 以上)

    • WEECHAT_HDATA_LIST_CHECK_POINTERS: ポインタをチェックする際に使うリスト

C 言語での使用例:

コードを短くするためにはマクロ "WEECHAT_HDATA_LIST" を使います。

Note
スクリプト API ではこの関数を利用できません。

3.20.4. weechat_hdata_get

WeeChat バージョン 0.3.6 以上で利用可。

WeeChat 及びプラグイン構造体に対する hdata を返す。

Note
hdata はデータを含みません、hdata は構造体における変数の位置を含むただのハッシュテーブル。つまりデータを読み出すためには hdata と WeeChat 及びプラグインへのポインタが必要です。

プロトタイプ:

引数:

  • hdata_name: hdata の名前

戻り値:

  • hdata へのポインタ、エラーが起きた場合は NULL

hdata のリスト:

  • guile_callback: スクリプトのコールバック

    • プラグイン: guile

    • 変数:

      • script (pointer, hdata: "guile_script")

      • function (string)

      • data (string)

      • config_file (pointer, hdata: "config_file")

      • config_section (pointer, hdata: "config_section")

      • config_option (pointer, hdata: "config_option")

      • hook (pointer)

      • buffer (pointer, hdata: "buffer")

      • bar_item (pointer, hdata: "bar_item")

      • upgrade_file (pointer)

      • prev_callback (pointer, hdata: "guile_callback")

      • next_callback (pointer, hdata: "guile_callback")

  • guile_script: スクリプトのリスト

    • プラグイン: guile

    • 変数:

      • filename (string)

      • interpreter (pointer)

      • name (string)

      • author (string)

      • version (string)

      • license (string)

      • description (string)

      • shutdown_func (string)

      • charset (string)

      • callbacks (pointer, hdata: "guile_callback")

      • unloading (integer)

      • prev_script (pointer, hdata: "guile_script")

      • next_script (pointer, hdata: "guile_script")

    • リスト:

      • last_script

      • scripts

  • irc_channel: irc チャンネル

    • プラグイン: irc

    • 変数:

      • type (integer)

      • name (string)

      • topic (string)

      • modes (string)

      • limit (integer)

      • key (string)

      • join_msg_received (hashtable)

      • checking_away (integer)

      • away_message (string)

      • has_quit_server (integer)

      • cycle (integer)

      • part (integer)

      • nick_completion_reset (integer)

      • pv_remote_nick_color (string)

      • hook_autorejoin (pointer)

      • nicks_count (integer)

      • nicks (pointer, hdata: "irc_nick")

      • last_nick (pointer, hdata: "irc_nick")

      • nicks_speaking (pointer)

      • nicks_speaking_time (pointer, hdata: "irc_channel_speaking")

      • last_nick_speaking_time (pointer, hdata: "irc_channel_speaking")

      • join_smart_filtered (hashtable)

      • buffer (pointer, hdata: "buffer")

      • buffer_as_string (string)

      • prev_channel (pointer, hdata: "irc_channel")

      • next_channel (pointer, hdata: "irc_channel")

  • irc_channel_speaking: irc 会話中チャンネル

    • プラグイン: irc

    • 変数:

      • nick (string)

      • time_last_message (time)

      • prev_nick (pointer, hdata: "irc_channel_speaking")

      • next_nick (pointer, hdata: "irc_channel_speaking")

  • irc_ignore: irc 無視

    • プラグイン: irc

    • 変数:

      • number (integer)

      • mask (string)

      • regex_mask (pointer)

      • server (string)

      • channel (string)

      • prev_ignore (pointer, hdata: "irc_ignore")

      • next_ignore (pointer, hdata: "irc_ignore")

    • リスト:

      • irc_ignore_list

      • last_irc_ignore

  • irc_nick: irc ニックネーム

    • プラグイン: irc

    • 変数:

      • name (string)

      • host (string)

      • prefixes (string)

      • prefix (string)

      • away (integer)

      • color (string)

      • prev_nick (pointer, hdata: "irc_nick")

      • next_nick (pointer, hdata: "irc_nick")

  • irc_notify: irc 通知

    • プラグイン: irc

    • 変数:

      • server (pointer, hdata: "irc_server")

      • nick (string)

      • check_away (integer)

      • is_on_server (integer)

      • away_message (string)

      • ison_received (integer)

      • prev_notify (pointer, hdata: "irc_notify")

      • next_notify (pointer, hdata: "irc_notify")

  • irc_redirect: irc リダイレクト

    • プラグイン: irc

    • 変数:

      • server (pointer, hdata: "irc_server")

      • pattern (string)

      • signal (string)

      • count (integer)

      • current_count (integer)

      • string (string)

      • timeout (integer)

      • command (string)

      • assigned_to_command (integer)

      • start_time (time)

      • cmd_start (hashtable)

      • cmd_stop (hashtable)

      • cmd_extra (hashtable)

      • cmd_start_received (integer)

      • cmd_stop_received (integer)

      • cmd_filter (hashtable)

      • output (string)

      • output_size (integer)

      • prev_redirect (pointer, hdata: "irc_redirect")

      • next_redirect (pointer, hdata: "irc_redirect")

  • irc_redirect_pattern: irc リダイレクトパターン

    • プラグイン: irc

    • 変数:

      • name (string)

      • temp_pattern (integer)

      • timeout (integer)

      • cmd_start (string)

      • cmd_stop (string)

      • cmd_extra (string)

      • prev_redirect (pointer, hdata: "irc_redirect_pattern")

      • next_redirect (pointer, hdata: "irc_redirect_pattern")

    • リスト:

      • irc_redirect_patterns

      • last_irc_redirect_pattern

  • irc_server: irc サーバ

    • プラグイン: irc

    • 変数:

      • name (string)

      • options (pointer)

      • temp_server (integer)

      • reloading_from_config (integer)

      • reloaded_from_config (integer)

      • addresses_count (integer)

      • addresses_array (string, array_size: "addresses_count")

      • ports_array (integer, array_size: "addresses_count")

      • retry_array (integer, array_size: "addresses_count")

      • index_current_address (integer)

      • current_address (string)

      • current_ip (string)

      • current_port (integer)

      • current_retry (integer)

      • sock (integer)

      • hook_connect (pointer, hdata: "hook")

      • hook_fd (pointer, hdata: "hook")

      • hook_timer_connection (pointer, hdata: "hook")

      • hook_timer_sasl (pointer, hdata: "hook")

      • is_connected (integer)

      • ssl_connected (integer)

      • disconnected (integer)

      • gnutls_sess (other)

      • tls_cert (other)

      • tls_cert_key (other)

      • unterminated_message (string)

      • nicks_count (integer)

      • nicks_array (string, array_size: "nicks_count")

      • nick_first_tried (integer)

      • nick_alternate_number (integer)

      • nick (string)

      • nick_modes (string)

      • cap_away_notify (integer)

      • isupport (string)

      • prefix_modes (string)

      • prefix_chars (string)

      • nick_max_length (integer)

      • casemapping (integer)

      • chantypes (string)

      • chanmodes (string)

      • monitor (integer)

      • monitor_time (time)

      • reconnect_delay (integer)

      • reconnect_start (time)

      • command_time (time)

      • reconnect_join (integer)

      • disable_autojoin (integer)

      • is_away (integer)

      • away_message (string)

      • away_time (time)

      • lag (integer)

      • lag_check_time (other)

      • lag_next_check (time)

      • lag_last_refresh (time)

      • cmd_list_regexp (pointer)

      • last_user_message (time)

      • last_away_check (time)

      • last_data_purge (time)

      • outqueue (pointer)

      • last_outqueue (pointer)

      • redirects (pointer, hdata: "irc_redirect")

      • last_redirect (pointer, hdata: "irc_redirect")

      • notify_list (pointer, hdata: "irc_notify")

      • last_notify (pointer, hdata: "irc_notify")

      • notify_count (integer)

      • join_manual (hashtable)

      • join_channel_key (hashtable)

      • join_noswitch (hashtable)

      • buffer (pointer, hdata: "buffer")

      • buffer_as_string (string)

      • channels (pointer, hdata: "irc_channel")

      • last_channel (pointer, hdata: "irc_channel")

      • prev_server (pointer, hdata: "irc_server")

      • next_server (pointer, hdata: "irc_server")

    • リスト:

      • irc_servers

      • last_irc_server

  • lua_callback: スクリプトのコールバック

    • プラグイン: lua

    • 変数:

      • script (pointer, hdata: "lua_script")

      • function (string)

      • data (string)

      • config_file (pointer, hdata: "config_file")

      • config_section (pointer, hdata: "config_section")

      • config_option (pointer, hdata: "config_option")

      • hook (pointer)

      • buffer (pointer, hdata: "buffer")

      • bar_item (pointer, hdata: "bar_item")

      • upgrade_file (pointer)

      • prev_callback (pointer, hdata: "lua_callback")

      • next_callback (pointer, hdata: "lua_callback")

  • lua_script: スクリプトのリスト

    • プラグイン: lua

    • 変数:

      • filename (string)

      • interpreter (pointer)

      • name (string)

      • author (string)

      • version (string)

      • license (string)

      • description (string)

      • shutdown_func (string)

      • charset (string)

      • callbacks (pointer, hdata: "lua_callback")

      • unloading (integer)

      • prev_script (pointer, hdata: "lua_script")

      • next_script (pointer, hdata: "lua_script")

    • リスト:

      • last_script

      • scripts

  • perl_callback: スクリプトのコールバック

    • プラグイン: perl

    • 変数:

      • script (pointer, hdata: "perl_script")

      • function (string)

      • data (string)

      • config_file (pointer, hdata: "config_file")

      • config_section (pointer, hdata: "config_section")

      • config_option (pointer, hdata: "config_option")

      • hook (pointer)

      • buffer (pointer, hdata: "buffer")

      • bar_item (pointer, hdata: "bar_item")

      • upgrade_file (pointer)

      • prev_callback (pointer, hdata: "perl_callback")

      • next_callback (pointer, hdata: "perl_callback")

  • perl_script: スクリプトのリスト

    • プラグイン: perl

    • 変数:

      • filename (string)

      • interpreter (pointer)

      • name (string)

      • author (string)

      • version (string)

      • license (string)

      • description (string)

      • shutdown_func (string)

      • charset (string)

      • callbacks (pointer, hdata: "perl_callback")

      • unloading (integer)

      • prev_script (pointer, hdata: "perl_script")

      • next_script (pointer, hdata: "perl_script")

    • リスト:

      • last_script

      • scripts

  • python_callback: スクリプトのコールバック

    • プラグイン: python

    • 変数:

      • script (pointer, hdata: "python_script")

      • function (string)

      • data (string)

      • config_file (pointer, hdata: "config_file")

      • config_section (pointer, hdata: "config_section")

      • config_option (pointer, hdata: "config_option")

      • hook (pointer)

      • buffer (pointer, hdata: "buffer")

      • bar_item (pointer, hdata: "bar_item")

      • upgrade_file (pointer)

      • prev_callback (pointer, hdata: "python_callback")

      • next_callback (pointer, hdata: "python_callback")

  • python_script: スクリプトのリスト

    • プラグイン: python

    • 変数:

      • filename (string)

      • interpreter (pointer)

      • name (string)

      • author (string)

      • version (string)

      • license (string)

      • description (string)

      • shutdown_func (string)

      • charset (string)

      • callbacks (pointer, hdata: "python_callback")

      • unloading (integer)

      • prev_script (pointer, hdata: "python_script")

      • next_script (pointer, hdata: "python_script")

    • リスト:

      • last_script

      • scripts

  • ruby_callback: スクリプトのコールバック

    • プラグイン: ruby

    • 変数:

      • script (pointer, hdata: "ruby_script")

      • function (string)

      • data (string)

      • config_file (pointer, hdata: "config_file")

      • config_section (pointer, hdata: "config_section")

      • config_option (pointer, hdata: "config_option")

      • hook (pointer)

      • buffer (pointer, hdata: "buffer")

      • bar_item (pointer, hdata: "bar_item")

      • upgrade_file (pointer)

      • prev_callback (pointer, hdata: "ruby_callback")

      • next_callback (pointer, hdata: "ruby_callback")

  • ruby_script: スクリプトのリスト

    • プラグイン: ruby

    • 変数:

      • filename (string)

      • interpreter (pointer)

      • name (string)

      • author (string)

      • version (string)

      • license (string)

      • description (string)

      • shutdown_func (string)

      • charset (string)

      • callbacks (pointer, hdata: "ruby_callback")

      • unloading (integer)

      • prev_script (pointer, hdata: "ruby_script")

      • next_script (pointer, hdata: "ruby_script")

    • リスト:

      • last_script

      • scripts

  • script_script: リポジトリからのスクリプト

    • プラグイン: script

    • 変数:

      • name (string)

      • name_with_extension (string)

      • language (integer)

      • author (string)

      • mail (string)

      • version (string)

      • license (string)

      • description (string)

      • tags (string)

      • requirements (string)

      • min_weechat (string)

      • max_weechat (string)

      • md5sum (string)

      • url (string)

      • popularity (integer)

      • date_added (time)

      • date_updated (time)

      • status (integer)

      • version_loaded (string)

      • displayed (integer)

      • install_order (integer)

      • prev_script (pointer, hdata: "script_script")

      • next_script (pointer, hdata: "script_script")

    • リスト:

      • last_script_repo

      • scripts_repo

  • tcl_callback: スクリプトのコールバック

    • プラグイン: tcl

    • 変数:

      • script (pointer, hdata: "tcl_script")

      • function (string)

      • data (string)

      • config_file (pointer, hdata: "config_file")

      • config_section (pointer, hdata: "config_section")

      • config_option (pointer, hdata: "config_option")

      • hook (pointer)

      • buffer (pointer, hdata: "buffer")

      • bar_item (pointer, hdata: "bar_item")

      • upgrade_file (pointer)

      • prev_callback (pointer, hdata: "tcl_callback")

      • next_callback (pointer, hdata: "tcl_callback")

  • tcl_script: スクリプトのリスト

    • プラグイン: tcl

    • 変数:

      • filename (string)

      • interpreter (pointer)

      • name (string)

      • author (string)

      • version (string)

      • license (string)

      • description (string)

      • shutdown_func (string)

      • charset (string)

      • callbacks (pointer, hdata: "tcl_callback")

      • unloading (integer)

      • prev_script (pointer, hdata: "tcl_script")

      • next_script (pointer, hdata: "tcl_script")

    • リスト:

      • last_script

      • scripts

  • bar: バー

    • プラグイン: weechat

    • 変数:

      • name (string)

      • options (pointer)

      • items_count (integer)

      • items_subcount (pointer)

      • items_array (pointer)

      • items_buffer (pointer)

      • items_prefix (pointer)

      • items_name (pointer)

      • items_suffix (pointer)

      • bar_window (pointer, hdata: "bar_window")

      • bar_refresh_needed (integer)

      • prev_bar (pointer, hdata: "bar")

      • next_bar (pointer, hdata: "bar")

    • リスト:

      • gui_bars

      • last_gui_bar

  • bar_item: バーアイテム

    • プラグイン: weechat

    • 変数:

      • 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")

    • リスト:

      • gui_bar_items

      • last_gui_bar_item

  • bar_window: バーウィンドウ

    • プラグイン: weechat

    • 変数:

      • bar (pointer, hdata: "bar")

      • x (integer)

      • y (integer)

      • width (integer)

      • height (integer)

      • scroll_x (integer)

      • scroll_y (integer)

      • cursor_x (integer)

      • cursor_y (integer)

      • current_size (integer)

      • items_count (integer)

      • items_subcount (pointer)

      • items_content (pointer)

      • items_num_lines (pointer)

      • items_refresh_needed (pointer)

      • screen_col_size (integer)

      • screen_lines (integer)

      • coords_count (integer)

      • coords (pointer)

      • gui_objects (pointer)

      • prev_bar_window (pointer, hdata: "bar_window")

      • next_bar_window (pointer, hdata: "bar_window")

  • buffer: バッファ

    • プラグイン: weechat

    • 変数:

      • plugin (pointer, hdata: "plugin")

      • plugin_name_for_upgrade (string)

      • number (integer)

      • layout_number (integer)

      • layout_number_merge_order (integer)

      • name (string)

      • full_name (string)

      • short_name (string)

      • type (integer)

      • notify (integer)

      • num_displayed (integer)

      • active (integer)

      • hidden (integer)

      • zoomed (integer)

      • print_hooks_enabled (integer)

      • day_change (integer)

      • clear (integer)

      • filter (integer)

      • close_callback (pointer)

      • close_callback_data (pointer)

      • closing (integer)

      • title (string)

      • own_lines (pointer, hdata: "lines")

      • mixed_lines (pointer, hdata: "lines")

      • lines (pointer, hdata: "lines")

      • time_for_each_line (integer)

      • chat_refresh_needed (integer)

      • nicklist (integer)

      • nicklist_case_sensitive (integer)

      • nicklist_root (pointer, hdata: "nick_group")

      • nicklist_max_length (integer)

      • nicklist_display_groups (integer)

      • nicklist_count (integer)

      • nicklist_groups_count (integer)

      • nicklist_nicks_count (integer)

      • nicklist_visible_count (integer)

      • nickcmp_callback (pointer)

      • nickcmp_callback_data (pointer)

      • input (integer)

      • input_callback (pointer)

      • input_callback_data (pointer)

      • input_get_unknown_commands (integer)

      • input_buffer (string)

      • input_buffer_alloc (integer)

      • input_buffer_size (integer)

      • input_buffer_length (integer)

      • input_buffer_pos (integer)

      • input_buffer_1st_display (integer)

      • input_undo_snap (pointer, hdata: "input_undo")

      • input_undo (pointer, hdata: "input_undo")

      • last_input_undo (pointer, hdata: "input_undo")

      • ptr_input_undo (pointer, hdata: "input_undo")

      • input_undo_count (integer)

      • completion (pointer, hdata: "completion")

      • history (pointer, hdata: "history")

      • last_history (pointer, hdata: "history")

      • ptr_history (pointer, hdata: "history")

      • num_history (integer)

      • text_search (integer)

      • text_search_exact (integer)

      • text_search_regex (integer)

      • text_search_regex_compiled (pointer)

      • text_search_where (integer)

      • text_search_found (integer)

      • text_search_input (string)

      • highlight_words (string)

      • highlight_regex (string)

      • highlight_regex_compiled (pointer)

      • highlight_tags_restrict (string)

      • highlight_tags_restrict_count (integer)

      • highlight_tags_restrict_array (pointer, array_size: "highlight_tags_restrict_count")

      • highlight_tags (string)

      • highlight_tags_count (integer)

      • highlight_tags_array (pointer, array_size: "highlight_tags_count")

      • hotlist_max_level_nicks (hashtable)

      • keys (pointer, hdata: "key")

      • last_key (pointer, hdata: "key")

      • keys_count (integer)

      • local_variables (hashtable)

      • prev_buffer (pointer, hdata: "buffer")

      • next_buffer (pointer, hdata: "buffer")

    • リスト:

      • gui_buffer_last_displayed

      • gui_buffers

      • last_gui_buffer

  • buffer_visited: 訪問済みバッファ

    • プラグイン: weechat

    • 変数:

      • buffer (pointer, hdata: "buffer")

      • prev_buffer (pointer, hdata: "buffer_visited")

      • next_buffer (pointer, hdata: "buffer_visited")

    • リスト:

      • gui_buffers_visited

      • last_gui_buffer_visited

  • completion: 補完する構造

    • プラグイン: weechat

    • 変数:

      • buffer (pointer, hdata: "buffer")

      • context (integer)

      • base_command (string)

      • base_command_arg_index (integer)

      • base_word (string)

      • base_word_pos (integer)

      • position (integer)

      • args (string)

      • direction (integer)

      • add_space (integer)

      • force_partial_completion (integer)

      • list (pointer)

      • word_found (string)

      • word_found_is_nick (integer)

      • position_replace (integer)

      • diff_size (integer)

      • diff_length (integer)

      • partial_list (pointer)

  • config_file: 設定ファイル

    • プラグイン: weechat

    • 変数:

      • plugin (pointer, hdata: "plugin")

      • name (string)

      • filename (string)

      • file (pointer)

      • callback_reload (pointer)

      • callback_reload_data (pointer)

      • sections (pointer, hdata: "config_section")

      • last_section (pointer, hdata: "config_section")

      • prev_config (pointer, hdata: "config_file")

      • next_config (pointer, hdata: "config_file")

    • リスト:

      • config_files

      • last_config_file

  • config_option: 設定オプション

    • プラグイン: weechat

    • 変数:

      • config_file (pointer, hdata: "config_file")

      • section (pointer, hdata: "config_section")

      • name (string)

      • type (integer)

      • description (string)

      • string_values (string, array_size: "*")

      • min (integer)

      • max (integer)

      • default_value (pointer)

      • value (pointer)

      • null_value_allowed (integer)

      • callback_check_value (pointer)

      • callback_check_value_data (pointer)

      • callback_change (pointer)

      • callback_change_data (pointer)

      • callback_delete (pointer)

      • callback_delete_data (pointer)

      • loaded (integer)

      • prev_option (pointer, hdata: "config_option")

      • next_option (pointer, hdata: "config_option")

  • config_section: 設定セクション

    • プラグイン: weechat

    • 変数:

      • config_file (pointer, hdata: "config_file")

      • name (string)

      • user_can_add_options (integer)

      • user_can_delete_options (integer)

      • callback_read (pointer)

      • callback_read_data (pointer)

      • callback_write (pointer)

      • callback_write_data (pointer)

      • callback_write_default (pointer)

      • callback_write_default_data (pointer)

      • callback_create_option (pointer)

      • callback_create_option_data (pointer)

      • callback_delete_option (pointer)

      • callback_delete_option_data (pointer)

      • options (pointer, hdata: "config_option")

      • last_option (pointer, hdata: "config_option")

      • prev_section (pointer, hdata: "config_section")

      • next_section (pointer, hdata: "config_section")

  • filter: フィルタ

    • プラグイン: weechat

    • 変数:

      • enabled (integer)

      • name (string)

      • buffer_name (string)

      • num_buffers (integer)

      • buffers (pointer)

      • tags (string)

      • tags_count (integer)

      • tags_array (pointer, array_size: "tags_count")

      • regex (string)

      • regex_prefix (pointer)

      • regex_message (pointer)

      • prev_filter (pointer, hdata: "filter")

      • next_filter (pointer, hdata: "filter")

    • リスト:

      • gui_filters

      • last_gui_filter

  • history: バッファのコマンド履歴

    • プラグイン: weechat

    • 変数:

      • text (string)

      • next_history (pointer, hdata: "history")

      • prev_history (pointer, hdata: "history")

    • アップデート可:

      • __create

      • __delete

    • リスト:

      • gui_history

      • last_gui_history

  • hotlist: ホットリスト

    • プラグイン: weechat

    • 変数:

      • priority (integer)

      • creation_time.tv_sec (time)

      • creation_time.tv_usec (long)

      • buffer (pointer)

      • count (integer, array_size: "4")

      • prev_hotlist (pointer, hdata: "hotlist")

      • next_hotlist (pointer, hdata: "hotlist")

    • リスト:

      • gui_hotlist

      • last_gui_hotlist

  • input_undo: 入力行をアンドゥする構造

    • プラグイン: weechat

    • 変数:

      • data (string)

      • pos (integer)

      • prev_undo (pointer, hdata: "input_undo")

      • next_undo (pointer, hdata: "input_undo")

  • key: キー (キーボードショートカット)

    • プラグイン: weechat

    • 変数:

      • key (string)

      • area_type (pointer)

      • area_name (pointer)

      • area_key (string)

      • command (string)

      • score (integer)

      • prev_key (pointer, hdata: "key")

      • next_key (pointer, hdata: "key")

    • リスト:

      • gui_default_keys

      • gui_default_keys_cursor

      • gui_default_keys_mouse

      • gui_default_keys_search

      • gui_keys

      • gui_keys_cursor

      • gui_keys_mouse

      • gui_keys_search

      • last_gui_default_key

      • last_gui_default_key_cursor

      • last_gui_default_key_mouse

      • last_gui_default_key_search

      • last_gui_key

      • last_gui_key_cursor

      • last_gui_key_mouse

      • last_gui_key_search

  • layout: レイアウト

    • プラグイン: weechat

    • 変数:

      • name (string)

      • layout_buffers (pointer, hdata: "layout_buffer")

      • last_layout_buffer (pointer, hdata: "layout_buffer")

      • layout_windows (pointer, hdata: "layout_window")

      • internal_id (integer)

      • internal_id_current_window (integer)

      • prev_layout (pointer, hdata: "layout")

      • next_layout (pointer, hdata: "layout")

    • リスト:

      • gui_layout_current

      • gui_layouts

      • last_gui_layout

  • layout_buffer: バッファレイアウト

    • プラグイン: weechat

    • 変数:

      • plugin_name (string)

      • buffer_name (string)

      • number (integer)

      • prev_layout (pointer, hdata: "layout_buffer")

      • next_layout (pointer, hdata: "layout_buffer")

  • layout_window: ウィンドウレイアウト

    • プラグイン: weechat

    • 変数:

      • internal_id (integer)

      • parent_node (pointer, hdata: "layout_window")

      • split_pct (integer)

      • split_horiz (integer)

      • child1 (pointer, hdata: "layout_window")

      • child2 (pointer, hdata: "layout_window")

      • plugin_name (string)

      • buffer_name (string)

  • line: 1 行の構造

    • プラグイン: weechat

    • 変数:

      • data (pointer, hdata: "line_data")

      • prev_line (pointer, hdata: "line")

      • next_line (pointer, hdata: "line")

  • line_data: 1 行データ構造

    • プラグイン: weechat

    • 変数:

      • buffer (pointer, hdata: "buffer")

      • y (integer)

      • date (time)

      • date_printed (time)

      • str_time (string)

      • tags_count (integer)

      • tags_array (shared_string, array_size: "tags_count")

      • displayed (char)

      • highlight (char)

      • refresh_needed (char)

      • prefix (shared_string)

      • prefix_length (integer)

      • message (string)

    • アップデート可:

      • date (time)

      • date_printed (time)

      • tags_array (shared_string)

      • prefix (shared_string)

      • message (string)

  • lines: 行を持つ構造

    • プラグイン: weechat

    • 変数:

      • first_line (pointer, hdata: "line")

      • last_line (pointer, hdata: "line")

      • last_read_line (pointer, hdata: "line")

      • lines_count (integer)

      • first_line_not_read (integer)

      • lines_hidden (integer)

      • buffer_max_length (integer)

      • buffer_max_length_refresh (integer)

      • prefix_max_length (integer)

      • prefix_max_length_refresh (integer)

  • nick: ニックネームリストにあるニックネーム

    • プラグイン: weechat

    • 変数:

      • group (pointer, hdata: "nick_group")

      • name (shared_string)

      • color (shared_string)

      • prefix (shared_string)

      • prefix_color (shared_string)

      • visible (integer)

      • prev_nick (pointer, hdata: "nick")

      • next_nick (pointer, hdata: "nick")

  • nick_group: ニックネームリストにあるグループ

    • プラグイン: weechat

    • 変数:

      • name (shared_string)

      • color (shared_string)

      • visible (integer)

      • level (integer)

      • parent (pointer, hdata: "nick_group")

      • children (pointer, hdata: "nick_group")

      • last_child (pointer, hdata: "nick_group")

      • nicks (pointer, hdata: "nick")

      • last_nick (pointer, hdata: "nick")

      • prev_group (pointer, hdata: "nick_group")

      • next_group (pointer, hdata: "nick_group")

  • plugin: プラグイン

    • プラグイン: weechat

    • 変数:

      • filename (string)

      • handle (pointer)

      • name (string)

      • description (string)

      • author (string)

      • version (string)

      • license (string)

      • charset (string)

      • debug (integer)

      • prev_plugin (pointer, hdata: "plugin")

      • next_plugin (pointer, hdata: "plugin")

    • リスト:

      • last_weechat_plugin

      • weechat_plugins

  • proxy: プロキシ

    • プラグイン: weechat

    • 変数:

      • name (string)

      • options (pointer)

      • prev_proxy (pointer, hdata: "proxy")

      • next_proxy (pointer, hdata: "proxy")

    • リスト:

      • last_weechat_proxy

      • weechat_proxies

  • window: ウィンドウ

    • プラグイン: weechat

    • 変数:

      • number (integer)

      • win_x (integer)

      • win_y (integer)

      • win_width (integer)

      • win_height (integer)

      • win_width_pct (integer)

      • win_height_pct (integer)

      • win_chat_x (integer)

      • win_chat_y (integer)

      • win_chat_width (integer)

      • win_chat_height (integer)

      • win_chat_cursor_x (integer)

      • win_chat_cursor_y (integer)

      • bar_windows (pointer, hdata: "bar_window")

      • last_bar_window (pointer, hdata: "bar_window")

      • refresh_needed (integer)

      • gui_objects (pointer)

      • buffer (pointer, hdata: "buffer")

      • layout_plugin_name (string)

      • layout_buffer_name (string)

      • scroll (pointer, hdata: "window_scroll")

      • ptr_tree (pointer, hdata: "window_tree")

      • prev_window (pointer, hdata: "window")

      • next_window (pointer, hdata: "window")

    • リスト:

      • gui_current_window

      • gui_windows

      • last_gui_window

  • window_scroll: ウィンドウ内のスクロール情報

    • プラグイン: weechat

    • 変数:

      • buffer (pointer, hdata: "buffer")

      • first_line_displayed (integer)

      • start_line (pointer, hdata: "line")

      • start_line_pos (integer)

      • scrolling (integer)

      • start_col (integer)

      • lines_after (integer)

      • prev_scroll (pointer, hdata: "window_scroll")

      • next_scroll (pointer, hdata: "window_scroll")

  • window_tree: ウィンドウツリー

    • プラグイン: weechat

    • 変数:

      • 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")

    • リスト:

      • gui_windows_tree

C 言語での使用例:

スクリプト (Python) での使用例:

3.20.5. weechat_hdata_get_var_offset

WeeChat バージョン 0.3.6 以上で利用可。

hdata における変数のオフセットを返す。

プロトタイプ:

引数:

  • hdata: hdata へのポインタ

  • name: 変数名

戻り値:

  • オフセットの値、エラーが起きた場合は 0

C 言語での使用例:

スクリプト (Python) での使用例:

3.20.6. weechat_hdata_get_var_type

WeeChat バージョン 0.3.6 以上で利用可。

hdata 内の変数の型を (整数で) 返す。

プロトタイプ:

引数:

  • hdata: hdata へのポインタ

  • name: 変数名

戻り値:

  • 変数の型、エラーが起きた場合は -1

C 言語での使用例:

Note
スクリプト API ではこの関数を利用できません。

3.20.7. weechat_hdata_get_var_type_string

WeeChat バージョン 0.3.6 以上で利用可。

変数の型を (文字列で) 返す。

プロトタイプ:

引数:

  • hdata: hdata へのポインタ

  • name: 変数名

戻り値:

  • 変数の型、エラーが起きた場合は NULL

C 言語での使用例:

スクリプト (Python) での使用例:

3.20.8. weechat_hdata_get_var_array_size

WeeChat バージョン 0.3.9 以上で利用可。

hdata に含まれる配列変数のサイズを返す。

プロトタイプ:

引数:

  • hdata: hdata へのポインタ

  • pointer: WeeChat および plugin オブジェクトへのポインタ

  • name: 変数名

戻り値:

  • 配列変数のサイズ、配列変数でない場合とエラーが起きた場合は -1

C 言語での使用例:

スクリプト (Python) での使用例:

3.20.9. weechat_hdata_get_var_array_size_string

WeeChat バージョン 0.3.9 以上で利用可。

hdata に含まれる配列変数のサイズを (文字列で) 返す。

プロトタイプ:

引数:

  • hdata: hdata へのポインタ

  • pointer: WeeChat および plugin オブジェクトへのポインタ

  • name: 変数名

戻り値:

  • 配列変数のサイズの文字列、配列変数でない場合とエラーが起きた場合は NULL

C 言語での使用例:

スクリプト (Python) での使用例:

3.20.10. weechat_hdata_get_var_hdata

WeeChat バージョン 0.3.6 以上で利用可。

hdata に含まれる変数に対応する hdata を返す。

プロトタイプ:

引数:

  • hdata: hdata へのポインタ

  • name: 変数名

戻り値:

  • 変数に対応する、hdata がない場合とエラーが起きた場合は NULL

C 言語での使用例:

スクリプト (Python) での使用例:

3.20.11. weechat_hdata_get_var

WeeChat バージョン 0.3.6 以上で利用可。

hdata に含まれる変数の内容へのポインタを返す。

プロトタイプ:

引数:

  • hdata: hdata へのポインタ

  • pointer: WeeChat および plugin オブジェクトへのポインタ

  • name: 変数名

戻り値:

  • 変数の内容へのポインタ、エラーが起きた場合は NULL

C 言語での使用例:

Note
スクリプト API ではこの関数を利用できません。

3.20.12. weechat_hdata_get_var_at_offset

WeeChat バージョン 0.3.6 以上で利用可。

オフセットを使って hdata に含まれる変数を指定し、この内容へのポインタを返す。

プロトタイプ:

引数:

  • hdata: hdata へのポインタ

  • pointer: WeeChat および plugin オブジェクトへのポインタ

  • name: 変数名

戻り値:

  • 変数の内容へのポインタ、エラーが起きた場合は NULL

C 言語での使用例:

Note
スクリプト API ではこの関数を利用できません。

3.20.13. weechat_hdata_get_list

WeeChat バージョン 0.3.6 以上で利用可。

hdata からリストへのポインタを返す。

プロトタイプ:

引数:

  • hdata: hdata へのポインタ

  • name: リスト名

戻り値:

  • リストへのポインタ、エラーが起きた場合は NULL

C 言語での使用例:

スクリプト (Python) での使用例:

3.20.14. weechat_hdata_check_pointer

WeeChat バージョン 0.3.7 以上で利用可、バージョン 1.0 で更新。

hdata とリストへのポインタを使ってポインタの妥当性を確認する。

プロトタイプ:

引数:

  • hdata: hdata へのポインタ

  • list: リストポインタ; NULL の場合 _(WeeChat バージョン 1.0 以上)_、ポインタは hdata に含まれる "check pointers" フラグを持つリストでチェックされます (weechat_hdata_new_list を参照)、このフラグを持つリストがない場合、ポインタは妥当とされます。

  • pointer: 確認するポインタ

戻り値:

  • リスト内にポインタが有る場合は 1、無い場合は 0

C 言語での使用例:

スクリプト (Python) での使用例:

3.20.15. weechat_hdata_move

WeeChat バージョン 0.3.6 以上で利用可。

リスト内の他の要素にポインタを移動する。

プロトタイプ:

引数:

  • hdata: hdata へのポインタ

  • pointer: WeeChat および plugin オブジェクトへのポインタ

  • count: 移動を実行する回数 (負および正の整数、ゼロは禁止)

戻り値:

  • 移動先の要素へのポインタ、エラーが起きた場合は NULL

C 言語での使用例:

スクリプト (Python) での使用例:

WeeChat バージョン 0.4.1 以上で利用可。

リストから要素を検索: リスト内の各要素に対して search の内容を評価し、マッチする要素が見つかるかリストの最後に到達するまでこれを続ける。

プロトタイプ:

引数:

  • hdata: hdata へのポインタ

  • pointer: WeeChat および plugin オブジェクトへのポインタ

  • search: 評価する式、式中のデフォルトポインタは hdata の名前 (デフォルトポインタはリストに含まれる各要素で置換される); 式に関する情報は WeeChat ユーザガイド のコマンド /eval を参照

  • move: 検索に失敗した後に移動を実行する回数 (負および正の整数、ゼロは禁止)

戻り値:

  • 見つかった要素へのポインタ、見つからなかった場合は NULL

C 言語での使用例:

スクリプト (Python) での使用例:

3.20.17. weechat_hdata_char

WeeChat バージョン 0.3.7 以上で利用可。

hdata を使って構造体に含まれる文字型変数の値を返す。

プロトタイプ:

引数:

  • hdata: hdata へのポインタ

  • pointer: WeeChat および plugin オブジェクトへのポインタ

  • name: 変数名 (必ず"文字型"であること); 配列の場合、"N|name" のように名前を指定することが可能。ここで N は配列のインデックス (1 番目は 0)、例: "2|name"

戻り値:

  • 文字型変数の値

C 言語での使用例:

スクリプト (Python) での使用例:

3.20.18. weechat_hdata_integer

WeeChat バージョン 0.3.6 以上で利用可。

hdata を使って構造体に含まれる整数型変数の値を返す。

プロトタイプ:

引数:

  • hdata: hdata へのポインタ

  • pointer: WeeChat および plugin オブジェクトへのポインタ

  • name: 変数名 (必ず"整数型"であること); 配列の場合、"N|name" のように名前を指定することが可能。ここで N は配列のインデックス (1 番目は 0)、例: "2|name"

戻り値:

  • 整数型変数の値

C 言語での使用例:

スクリプト (Python) での使用例:

3.20.19. weechat_hdata_long

WeeChat バージョン 0.3.6 以上で利用可。

hdata を使って構造体に含まれる long 型変数の値を返す。

プロトタイプ:

引数:

  • hdata: hdata へのポインタ

  • pointer: WeeChat および plugin オブジェクトへのポインタ

  • name: 変数名 (必ず "long 型"であること); 配列の場合、"N|name" のように名前を指定することが可能。ここで N は配列のインデックス (1 番目は 0)、例: "2|name"

戻り値:

  • long 変数の値

C 言語での使用例:

スクリプト (Python) での使用例:

3.20.20. weechat_hdata_string

WeeChat バージョン 0.3.6 以上で利用可。

hdata を使って構造体に含まれる文字列型変数の値を返す。

プロトタイプ:

引数:

  • hdata: hdata へのポインタ

  • pointer: WeeChat および plugin オブジェクトへのポインタ

  • name: 変数名 (必ず"文字列型"であること); 配列の場合、"N|name" のように名前を指定することが可能。ここで N は配列のインデックス (1 番目は 0)、例: "2|name"

戻り値:

  • 文字列変数の値

C 言語での使用例:

スクリプト (Python) での使用例:

3.20.21. weechat_hdata_pointer

WeeChat バージョン 0.3.6 以上で利用可。

hdata を使って構造体に含まれるポインタ型変数の値を返す。

プロトタイプ:

引数:

  • hdata: hdata へのポインタ

  • pointer: WeeChat および plugin オブジェクトへのポインタ

  • name: 変数名 (必ず"ポインタ型"であること); 配列の場合、"N|name" のように名前を指定することが可能。ここで N は配列のインデックス (1 番目は 0)、例: "2|name"

戻り値:

  • ポインタ型変数の値

C 言語での使用例:

スクリプト (Python) での使用例:

3.20.22. weechat_hdata_time

WeeChat バージョン 0.3.6 以上で利用可。

hdata を使って構造体に含まれる時刻型変数の値を返す。

プロトタイプ:

引数:

  • hdata: hdata へのポインタ

  • pointer: WeeChat および plugin オブジェクトへのポインタ

  • name: 変数名 (必ず"時刻型"であること); 配列の場合、"N|name" のように名前を指定することが可能。ここで N は配列のインデックス (1 番目は 0)、例: "2|name"

戻り値:

  • 時刻型変数の値

C 言語での使用例:

スクリプト (Python) での使用例:

3.20.23. weechat_hdata_hashtable

WeeChat バージョン 0.3.7 以上で利用可。

hdata を使って構造体に含まれるハッシュテーブル型変数の値を返す。

プロトタイプ:

引数:

  • hdata: hdata へのポインタ

  • pointer: WeeChat および plugin オブジェクトへのポインタ

  • name: 変数名 (必ず"ハッシュテーブル型"であること); 配列の場合、"N|name" のように名前を指定することが可能。ここで N は配列のインデックス (1 番目は 0)、例: "2|name"

戻り値:

  • ハッシュテーブル型変数の値 (ハッシュテーブルへのポインタ)

C 言語での使用例:

スクリプト (Python) での使用例:

3.20.24. weechat_hdata_set

WeeChat バージョン 0.3.9 以上で利用可。

hdata の変数に新しい値を設定。

Note
変数の更新を許可している場合に、この関数呼び出して良いのは update コールバックの中だけです (weechat_hdata_newweechat_hdata_update を参照)

プロトタイプ:

引数:

  • hdata: hdata へのポインタ

  • pointer: WeeChat および plugin オブジェクトへのポインタ

  • name: 変数名 (許可されている型: 文字型、整数型、long 型、文字列型、ポインタ型、時刻型)

  • value: 変数の新しい値

戻り値:

  • 成功した場合は 1、エラーが起きた場合は 0

C 言語での使用例:

Note
スクリプト API ではこの関数を利用できません。

3.20.25. weechat_hdata_update

WeeChat バージョン 0.3.9 以上で利用可。

hdata 内のデータを更新。

プロトタイプ:

引数:

  • hdata: hdata へのポインタ

  • pointer: WeeChat および plugin オブジェクトへのポインタ

  • hashtable: 更新する変数: キーは変数の名前、値は変数の新しい値 (キーと値は文字列)、以下の特別なキーを使うことができます:

    • キー __create_allowed (値は任意): 構造体の作製を許可する場合は 1、許可しない場合は 0 を返す (WeeChat バージョン 0.4.0 以上で利用可)

    • キー __delete_allowed (値は任意): 構造体の削除を許可する場合は 1、許可しない場合は 0 を返す

    • キー __update_allowed 、値は変数の名前: この変数の更新を許可する場合は 1、許可しない場合は 0 を返す

    • キー __delete (値は任意): 構造体を削除 (許可されている場合)

戻り値:

  • 更新された変数の個数

C 言語での使用例:

スクリプト (Python) での使用例:

3.20.26. weechat_hdata_get_string

WeeChat バージョン 0.3.6 以上で利用可。

hdata プロパティの文字列値を返す。

プロトタイプ:

引数:

  • 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 言語での使用例:

スクリプト (Python) での使用例:

3.21. アップグレード

WeeChat をアップグレードする (コマンド "/upgrade") 関数。

3.21.1. weechat_upgrade_new

アップグレード用のファイルを作成または読み込み。

プロトタイプ:

引数:

  • filename: ファイルの名前 (WeeChat はこの名前に拡張子 ".upgrade" を追加します)

  • write:

    • 1: ファイルを作成 (書き込みモード、アップグレード前)

    • 0: ファイルを読み込む (アップグレード後)

戻り値:

  • アップグレードファイルへのポインタ

C 言語での使用例:

スクリプト (Python) での使用例:

3.21.2. weechat_upgrade_write_object

アップグレードファイルにオブジェクトを書き込む。

プロトタイプ:

引数:

  • upgrade_file: アップグレードファイルへのポインタ

  • object_id: オブジェクトの識別番号

  • infolist: ファイルに書き込むインフォリスト

戻り値:

  • 成功した場合は 1、エラーが起きた場合は 0

C 言語での使用例:

スクリプト (Python) での使用例:

3.21.3. weechat_upgrade_read

アップグレードファイルを読み込む。

プロトタイプ:

引数:

  • 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 言語での使用例:

スクリプト (Python) での使用例:

3.21.4. weechat_upgrade_close

アップグレードファイルを閉じる。

プロトタイプ:

引数:

  • upgrade_file: アップグレードファイルへのポインタ

C 言語での使用例:

スクリプト (Python) での使用例: