EDITLINE(3) FreeBSD ライブラリ関数マニュアル EDITLINE(3)
名称
editline, el_init, el_end, el_reset, el_gets, el_getc, el_push, el_parse, el_set, el_source, el_resize, el_line, el_insertstr, el_deletestr, el_data_set, el_data_get, history_init, history_end, history − ラインエ ディタと歴史関数 |
ライブラリ
コマンドラインエディタライブラリ (libedit, −ledit) |
書式
#include <histedit.h> EditLine * |
el_init(const char *prog, FILE *fin, FILE *fout); void |
el_end(EditLine *e); void |
el_reset(EditLine *e); const char * |
el_gets(EditLine *e, int *count); int |
el_getc(EditLine *e, char *ch); void |
el_push(EditLine *e, const char *str); int |
el_parse(EditLine *e, int argc, char *argv[]); int |
el_set(EditLine *e, int op, ...); int |
el_source(EditLine *e, const char *file); void |
el_resize(EditLine *e); const LineInfo * |
el_line(EditLine *e); int |
el_insertstr(EditLine *e, char *str); void |
el_deletestr(EditLine *e, int count); void |
el_data_set(EditLine *e, void *data); void * |
el_data_get(EditLine *e); History * |
history_init(); void |
history_end(History *h); const HistEvent * |
history(History *h, int op, ...); |
解説 |
editline ライブラリには、汎用のライン編集と歴史関数が備わっています。これ は sh(1) にあるものと類似しています。 これらの関数は libedit ライブラリで利用できます (これには libtermcap ライ ブラリが必要です)。プログラムは −ledit −ltermcap とリンクする必要がありま す。 |
ライン編集関数
ライン編集関数は、共通のデータ構造、 EditLine を使用します。これは el_init() によって作成され、 el_end() によって解放されます。 以下の関数が利用できます。 |
el_init()
ラインエディタを初期化し、他のすべてのライン編集関数が使用するデー タ構造を返します。 prog は、起動する側のプログラムの名前であり、ど の設定を使用するか決定するために editrc(5) ファイルを読み取るときに 使用されます。 fin と fout はそれぞれ使用する入力ストリームと出力ス トリームです。このドキュメンテーションでは、 ‘‘the tty’’ の参照が実 際にはこの入力/出力ストリームの組み合わせを参照します。 el_end() el_reset() el_gets() el_getc() el_push() el_parse() 注: argv[0] は el_parse() によって修正されることがあります。 ‘‘prog’’ とコマンド command の間のコロンは、NUL (‘‘\0’’) で置き換え られます。 el_set() op の値については、必須引数リストとともに次のパラメータがサポートさ れています。 EL_PROMPT, char *(*f)(EditLine *) EL_TERMINAL, const char *type EL_EDITOR, const char *mode EL_SIGNAL, int flag EL_BIND, EL_ECHOTC, EL_SETTC, EL_SETTY, EL_TELLTC, EL_ADDFN, CC_NORM CC_NEWLINE CC_EOF CC_ARGHACK CC_REFRESH CC_CURSOR CC_REDISPLAY CC_ERROR CC_FATAL EL_HIST, el_source() el_resize() el_line() typedef struct lineinfo { |
el_insertstr()
カーソルがあるラインに str を挿入します。 str が空であるかフィット しない場合は -1 を返します。それ以外の場合は 0 を返します。 el_deletestr() el_data_set() el_data_get() 歴史リスト関数 |
歴史関数は共通のデータ構造 History を使用します。 History は、 history_init() によって作成され、 history_end() によって解放されます。 次の関数が利用できます。 |
history_init()
歴史リストを初期化し、他のすべての歴史関数が使用するデータ構造を返 します。 history_end() history() H_EVENT, int size H_END H_CLEAR H_FUNC, H_FIRST H_LAST H_PREV H_NEXT H_CURR H_ADD, const char *str H_ENTER, const char *str H_PREV_STR, const char *str H_NEXT_STR, const char *str H_PREV_EVENT, int e H_NEXT_EVENT, int e H_LOAD, const char *file H_SAVE, const char *file 関連項目 |
歴史
editline ライブラリは最初に 4.4BSD で現れました。 |
作者
editline ライブラリは Christos Zoulas が作成しました。このマニュアルは Luke Mewburn が作成しました。 |
バグ
このドキュメンテーションはおそらく不完全であると考えられます。 el_parse() は、指定された argv[0] を修正してはなりません。 トークン化関数は <histedit.h> 内では公に定義されていません。 FreeBSD 10.0 January 11, 1997 FreeBSD 10.0 |