Naoya Murakami
visio****@gmail*****
2014年 5月 22日 (木) 09:22:47 JST
お世話になっております。村上です。 Groongaの組み込みコマンドやバンドルのプラグインのコマンド では、コマンドの引数を取得するために、VARというマクロを 使っていると思います。 hhttps://github.com/groonga/groonga/blob/master/lib/proc.c#L54 このVARは、GRN_PROC_GET_VAR_BY_OFFSETのマクロであり、 GRN_PROC_GET_VAR_BY_OFFSETは、grn_proc_get_var_by_offset のマクロです。 https://github.com/groonga/groonga/blob/master/lib/db.h#L195-L209 このgrn_proc_get_var_by_offsetが外部公開されておらず、 コマンドプラグインからgrn_proc_get_var_by_offsetを呼び 出すことができません。 そこで、groonga/plugin.hとlib/plugin.cに以下を追加して、 grn_plugin_proc_get_var_by_offsetとして外部に公開して いただけませんか? https://github.com/groonga/groonga/blob/master/include/groonga/plugin.h#L172 /* grn_plugin_proc_get_var_by_offset() gets a value from user_data by offset. */ GRN_API grn_obj *grn_plugin_proc_get_var_by_offset(grn_ctx *ctx, grn_user_data *user_data, unsigned int offset); proc_func https://github.com/groonga/groonga/blob/master/lib/plugin.c#L637 grn_obj * grn_plugin_proc_get_var_by_offset(grn_ctx *ctx, grn_user_data *user_data, unsigned int offset) { return grn_proc_get_var_by_offset(ctx, user_data, offset); } 何らかの理由があってこれが公開できなければ、このAPIを使わずにコマンド の引数を取得できる方法があれば、教えていただけると嬉しいです。 上記の内容で追加してくれていいよ、ってご判断いただければ、ご指示下さい。 上記の2点で問題なければ、Pull Requestします。 (grn_plugin_proc_allocもないみたいですし、テストとかないですよね?) ちなみに上記の2点を追加すると以下のサンプルコマンドプラグインはうまく動きました。 https://github.com/naoa/groonga-command-sample/blob/master/commands/echo.c https://github.com/naoa/groonga-command-sample/blob/master/test/suite/echo.expected お手数ですがご検討ください。 以上、よろしくお願いします。