libedit (わずかに異なる API を持つ readline の BSD 代替) のラッパーを作成しようとしていますが、名前付き関数を C API に追加する方法があります。
たとえば、C では次のようになります。
static unsigned char show_help(EditLine *e, int ch) {
printf("Help");
}
el = el_init(argv[0], stdin, stdout, stderr);
el_set(el, EL_ADDFN, "help", "This is help", show_help);
el_set(el, EL_BIND, "\?", "help", NULL);
el_set を呼び出して関数を追加し、後でその関数をバインドします。
EL_ADDFN をラップして Python メソッドを動的にバインドできるようにする良い方法が見つかりません。名前の付いた一連の C 関数を作成し、それらをすべて個別に Python メソッドにラップすることもできますが、できるだけ C API をエミュレートしたいと考えています。
EL_ADDFN を呼び出して、呼び出している python メソッドを特定する方法はありますか?