diff options
Diffstat (limited to 'doc/ja/weechat_plugin_api.ja.asciidoc')
-rw-r--r-- | doc/ja/weechat_plugin_api.ja.asciidoc | 301 |
1 files changed, 247 insertions, 54 deletions
diff --git a/doc/ja/weechat_plugin_api.ja.asciidoc b/doc/ja/weechat_plugin_api.ja.asciidoc index ce54eb51e..c6b6a011e 100644 --- a/doc/ja/weechat_plugin_api.ja.asciidoc +++ b/doc/ja/weechat_plugin_api.ja.asciidoc @@ -761,13 +761,15 @@ int diff = weechat_strcmp_ignore_chars ("a-b", "--a-e", "-", 1); /* == -3 */ ==== strcasestr +_バージョン 1.3 で更新。_ + ロケールと大文字小文字を区別して文字列を検索。 プロトタイプ: [source,C] ---- -char *weechat_strcasestr (const char *string, const char *search); +const char *weechat_strcasestr (const char *string, const char *search); ---- 引数: @@ -778,12 +780,13 @@ char *weechat_strcasestr (const char *string, const char *search); 戻り値: * 見つかった文字列へのポインタ、見つからない場合は NULL + (_WeeChat バージョン 1.3 以上の場合_: 返されるポインタは 'const char *' であり、 'char *' ではありません) C 言語での使用例: [source,C] ---- -char *pos = weechat_strcasestr ("aBcDeF", "de"); /* result: pointer to "DeF" */ +const char *pos = weechat_strcasestr ("aBcDeF", "de"); /* result: pointer to "DeF" */ ---- [NOTE] @@ -921,6 +924,64 @@ free (str); [NOTE] スクリプト API ではこの関数を利用できません。 +==== string_eval_path_home + +_WeeChat バージョン 0.3.3 以上で利用可。_ + +3 段階でパスを評価します: + +. 先頭の `%h` を WeeChat ホームディレクトリで置換し、 +. 先頭の `~` をユーザのホームディレクトリで置換し + (<<_string_expand_home,weechat_string_expand_home>> を実行し)、 +. 変数を評価します + (<<_string_eval_expression,weechat_string_eval_expression>> を参照してください)。 + +プロトタイプ: + +[source,C] +---- +char *weechat_string_eval_path_home (const char *path, + struct t_hashtable *pointers, + struct t_hashtable *extra_vars, + struct t_hashtable *options); +---- + +引数: + +* 'path': パス +* 'pointers': 関数に渡されるハッシュテーブル + <<_string_eval_expression,weechat_string_eval_expression>> +* 'extra_vars': 関数に渡されるハッシュテーブル + <<_string_eval_expression,weechat_string_eval_expression>> +* 'options': 関数に渡されるハッシュテーブル + <<_string_eval_expression,weechat_string_eval_expression>> + +戻り値: + +* 評価済みのパス (使用後には必ず "free" を呼び出して領域を開放してください) + +C 言語での使用例: + +[source,C] +---- +char *str = weechat_string_expand_home ("%h/test"); +/* result: "/home/xxx/.weechat/test" */ +/* ... */ +free (str); +---- + +スクリプト (Python) での使用例: + +[source,python] +---- +# プロトタイプ +path = weechat.string_eval_path_home(path, pointers, extra_vars, options) + +# 例 +path = weechat.string_eval_path_home("%h/test", "", "", "") +# path == "/home/xxx/.weechat/test" +---- + ==== string_remove_quotes 文字列の最初と最後から引用符号を削除 @@ -1845,7 +1906,7 @@ str3 = weechat.string_input_for_buffer("//test") # "/test" ==== string_eval_expression -_WeeChat バージョン 0.4.0 以上で利用可、バージョン 0.4.2 と 1.1 で更新。_ +_WeeChat バージョン 0.4.0 以上で利用可、バージョン 0.4.2、1.0、1.1、1.2、1.3 で更新。_ 式を評価して文字列として返す。`${variable}` という書式で書かれた特殊変数は展開されます (以下の表を参照)。 @@ -1897,13 +1958,20 @@ char *weechat_string_eval_expression (const char *expr, 式中で展開される変数のリスト (優先度の高い順、展開順の早いものを上に遅いものを下に): -[width="100%",cols="2,8,3,3",options="header"] +[width="100%",cols="2,8,4,4",options="header"] |=== | フォーマット | 説明 | 例 | 結果 | `${name}` | 'extra_vars' の変数 `name` の値に展開 | `${name}` | `value` +| `${eval:xxx}` + + (_WeeChat バージョン 1.3 以上で利用可_) | + 評価する文字列 | + `${eval:${date:${weechat.look.buffer_time_format}}}` | + `19:02:45` (オプション weechat.look.buffer_time_format + 内に色コードが存在する場合色付き) + | `${esc:xxx}` + `${\xxx}` | エスケープ文字を含む文字列 | `${esc:prefix\tmessage}` + @@ -1923,14 +1991,15 @@ char *weechat_string_eval_expression (const char *expr, `test` | `${color:name}` | - WeeChat 色コード (色名部分はオプション属性をとることも可能です) | + WeeChat 色コード (色名部分はオプション属性をとることも可能です), + フォーマットを確認するには関数 <<_color,weechat_color>> をご確認ください | `${color:red}red text` + `${color:*214}bold orange text` | `red text` (赤色で) + `bold orange text` (太字オレンジ色で) | `${info:name}` + - `${indo:name,arguments}` | + `${info:name,arguments}` | WeeChat またはプラグインのインフォ、<<_info_get,weechat_info_get>> を参照 | `${info:version}` + @@ -1938,6 +2007,22 @@ char *weechat_string_eval_expression (const char *expr, `1.0` + `lightblue` +| `${date}` + + `${date:xxx}` + + (_WeeChat バージョン 1.3 以上で利用可_) | + 現在の日付/時刻、カスタムフォーマットを使うことも可能です (`man strftime` を参照)、 + デフォルトフォーマットは `%F %T` | + `${date}` + + `${date:%H:%M:%S}` | + `2015-06-30 19:02:45` + + `19:02:45` + +| `${env:NAME}` + + (_WeeChat バージョン 1.2 以上で利用可_) | + Value of the environment variable `NAME` | + `${env:HOME}` | + `/home/user` + | `${sec.data.name}` | セキュアデータ `name` の値 | `${sec.data.freenode_pass}` | @@ -2132,13 +2217,16 @@ weechat_utf8_normalize (string, '?'); ==== utf8_prev_char +_バージョン 1.3 で更新。_ + 文字列中の 1 つ前の UTF-8 文字へのポインタを返す。 プロトタイプ: [source,C] ---- -char *weechat_utf8_prev_char (const char *string_start, const char *string); +const char *weechat_utf8_prev_char (const char *string_start, + const char *string); ---- 引数: @@ -2150,12 +2238,13 @@ char *weechat_utf8_prev_char (const char *string_start, const char *string); 戻り値: * 1 つ前の UTF-8 文字へのポインタ、見つからなければ (文字列の開始位置に到達した場合は) NULL + (_WeeChat バージョン 1.3 以上の場合_: 返されるポインタは 'const char *' であり、 'char *' ではありません) C 言語での使用例: [source,C] ---- -char *prev_char = weechat_utf8_prev_char (string, ptr_in_string); +const char *prev_char = weechat_utf8_prev_char (string, ptr_in_string); ---- [NOTE] @@ -2163,13 +2252,15 @@ char *prev_char = weechat_utf8_prev_char (string, ptr_in_string); ==== utf8_next_char +_バージョン 1.3 で更新。_ + 文字列中の 1 つ後の UTF-8 文字へのポインタを返す。 プロトタイプ: [source,C] ---- -char *weechat_utf8_next_char (const char *string); +const char *weechat_utf8_next_char (const char *string); ---- 引数: @@ -2179,12 +2270,13 @@ char *weechat_utf8_next_char (const char *string); 戻り値: * 1 つ後の UTF-8 文字へのポインタ、見つからなければ (文字列の最後に到達した場合は) NULL + (_WeeChat バージョン 1.3 以上の場合_: 返されるポインタは 'const char *' であり、 'char *' ではありません) C 言語での使用例: [source,C] ---- -char *next_char = weechat_utf8_next_char (string); +const char *next_char = weechat_utf8_next_char (string); ---- [NOTE] @@ -2435,13 +2527,15 @@ int length_on_screen = weechat_utf8_char_size_screen ("é"); /* == 1 */ ==== utf8_add_offset +_バージョン 1.3 で更新。_ + UTF-8 文字列で N 文字前に進む。 プロトタイプ: [source,C] ---- -char *weechat_utf8_add_offset (const char *string, int offset); +const char *weechat_utf8_add_offset (const char *string, int offset); ---- 引数: @@ -2452,13 +2546,14 @@ char *weechat_utf8_add_offset (const char *string, int offset); 戻り値: * 文字列の N 文字後に進んだ位置へのポインタ (元文字列の最後より後の位置を指す場合は NULL) + (_WeeChat バージョン 1.3 以上の場合_: 返されるポインタは 'const char *' であり、 'char *' ではありません) C 言語での使用例: [source,C] ---- -char *str = "chêne"; -char *str2 = weechat_utf8_add_offset (str, 3); /* points to "ne" */ +const char *str = "chêne"; +const char *str2 = weechat_utf8_add_offset (str, 3); /* points to "ne" */ ---- [NOTE] @@ -2866,21 +2961,26 @@ weechat_util_timeval_add (&tv, 2000000); /* add 2 seconds */ ==== util_get_time_string -_WeeChat バージョン 0.3.2 以上で利用可。_ +_WeeChat バージョン 0.3.2 以上で利用可、バージョン 1.3 で更新。_ -日付や時間を "strftime" で作った文字列で取得。 +日付/時刻を "strftime" で作った文字列として取得します。フォーマットは +'weechat.look.time_format' で定義されています。 プロトタイプ: [source,C] ---- -char *weechat_util_get_time_string (const time_t *date); +const char *weechat_util_get_time_string (const time_t *date); ---- 引数: * 'date': 日付へのポインタ +戻り値: + +* 日付/時刻文字列へのポインタ + C 言語での使用例: [source,C] @@ -6492,7 +6592,10 @@ const char *weechat_color (const char *color_name); 引数: * 'color_name': 色の名前、以下の中から 1 つ: -** WeeChat オプション名 (weechat.color.xxx の xxx)、例えば 'chat_delimiters' +** WeeChat 色オプション名 (weechat.color.xxx の xxx)、例えば + 'chat_delimiters' +** オプション名 (フォーマット: file.section.option)、例えば + 'irc.color.message_quit' (_WeeChat バージョン 1.2 以上で利用可_) ** 任意で属性や背景色を指定した色 (以下を参照) ** 属性: *** 'bold': 太字を有効 @@ -7124,6 +7227,8 @@ hook = weechat.hook_timer(20 * 1000, 0, 0, "my_timer_cb", "") ==== hook_fd +_バージョン 1.3 で更新。_ + ファイルディスクリプタ (ファイルやソケット) をフック。 プロトタイプ: @@ -7145,6 +7250,7 @@ struct t_hook *weechat_hook_fd (int fd, * 'flag_read': 1 = 読み込みイベントをキャッチ、0 = 無視 * 'flag_write': 1 = 書き込みイベントをキャッチ、0 = 無視 * 'flag_exception': 1 = 例外イベントをキャッチ、0 = 無視 + (_WeeChat バージョン 1.3 以上の場合_: この引数は無視され、使われません) * 'callback': ファイル (またはソケット) に対してキャッチしたいイベントが発生した場合に実行する関数、 引数と戻り値: ** 'void *data': ポインタ @@ -8377,6 +8483,21 @@ WeeChat とプラグインが送信するシグナルのリスト: String: /quit の引数 | ユーザがコマンド `/quit` を実行 +| weechat | signal_sighup + + _(WeeChat バージョン 1.3 以上で利用可)_ | + - | + SIGHUP シグナルを受信 + +| weechat | signal_sigquit + + _(WeeChat バージョン 1.2 以上で利用可)_ | + - | + SIGQUIT シグナルを受信 (コアダンプ付きで終了要求) + +| weechat | signal_sigterm + + _(WeeChat バージョン 1.2 以上で利用可)_ | + - | + SIGTERM シグナルを受信 (WeeChat プロセスを正常に終了させる) + | weechat | signal_sigwinch + _(WeeChat バージョン 0.4.3 以上で利用可)_ | - | @@ -9863,36 +9984,98 @@ info を使う前にエリアが一致していることを確認して下さい [width="100%",cols="5m,5,8,3",options="header"] |=== -| キー ^(1)^ | 説明 | 値の例 | 定義できない場合の値 -| _x | スクリーン上での列座標 2+| "0" ... "n" -| _y | スクリーン上での行座標 2+| "0" ... "n" -| _key | キーまたはマウスイベント 2+| "button1"、"button2-gesture-left"、... -| _window | ウィンドウへのポインタ | "0x12345678" | "" -| _window_number | ウィンドウの番号 | "1" ... "n" | "*" -| _buffer | バッファへのポインタ | "0x12345678" | "" -| _buffer_number | バッファの番号 | "1" ... "n" | "-1" -| _buffer_plugin | バッファのプラグイン名 | "core"、"irc"、... | "" -| _buffer_name | バッファの名前 | "weechat"、"freenode.#weechat"、... | "" -| _buffer_full_name | バッファの完全な名前 | "core.weechat"、"irc.freenode.#weechat"、... | "" -| _buffer_localvar_XXX ^(2)^ | バッファのローカル変数 | 任意の値 | 未定義 -| _chat | チャットエリアインジケータ | "0" または "1" | "0" -| _chat_line_x | 行中の列番号 ^(3)^ | "0" ... "n" | "-1" -| _chat_line_y | 行番号 ^(3)^ | "0" ... "n" | "-1" -| _chat_line_date | 日付/時間の行 | "1313237175" | "0" -| _chat_line_date_printed | 日付/時間の行 ^(4)^ | "1313237175" | "0" -| _chat_line_time | 表示された時間 | "14:06:15" | "" -| _chat_line_tags | 行に設定されたタグ | "irc_privmsg,nick_flashy,log1" | "" -| _chat_line_nick | 行を発言したニックネーム | "FlashCode" | "" -| _chat_line_prefix | 行のプレフィックス | "@FlashCode" | "" -| _chat_line_message | 行のメッセージ部分 | "Hello world!" | "" -| _chat_word | (x,y) の位置にある単語 | "Hello" | "" -| _chat_bol | 行頭から (x-1,y) まで | "He" | "" -| _chat_eol | (x,y) から行末まで | "llo world!" | "" -| _bar_name | バーの名前 | "title"、"nicklist"、... | "" -| _bar_filling | バーのフィリング | "horizontal"、"vertical"、... | "" -| _bar_item_name | バー要素の名前 | "buffer_nicklist"、"hotlist"、... | "" -| _bar_item_line | バー要素中の行座標 | "0" ... "n" | "-1" -| _bar_item_col | バー要素中の列座標 | "0" ... "n" | "-1" +| キー ^(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 | 行へのポインタ + + _(WeeChat バージョン 1.2 以上で利用可)_ | + "0x12345678" | "" + +| _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] @@ -12753,23 +12936,33 @@ hashtable_in = weechat_hashtable_new (8, NULL); if (hashtable_in) { - weechat_hashtable_set (hashtable_in, "message", - ":nick!user@host PRIVMSG #weechat :message here"); + weechat_hashtable_set ( + hashtable_in, + "message", + "@time=2015-06-27T16:40:35.000Z :nick!user@host PRIVMSG #weechat :hello!"); hashtable_out = weechat_info_get_hashtable ("irc_message_parse", hashtable_in); /* * now hashtable_out has following keys/values: - * "nick" : "nick" - * "host" : "nick!user@host" - * "command" : "PRIVMSG" - * "channel" : "#weechat" - * "arguments": "#weechat :message here" + * "tags" : "time=2015-06-27T16:40:35.000Z" + * "message_without_tags": ":nick!user@host PRIVMSG #weechat :hello!" + * "nick" : "nick" + * "host" : "nick!user@host" + * "command" : "PRIVMSG" + * "channel" : "#weechat" + * "arguments" : "#weechat :hello!" + * "text" : "hello!" + * "pos_text" : "65" */ weechat_hashtable_free (hashtable_in); weechat_hashtable_free (hashtable_out); } ---- +[NOTE] +"irc_message_parse" の出力に関するより詳しい情報を得るには +'WeeChat スクリプト作成ガイド' をご覧ください。 + スクリプト (Python) での使用例: [source,python] |