総合手引 | セクション 3 | English | オプション |
これらの関数は
libedit
ライブラリで利用できます
(これには
libtermcap
ライブラリが必要です)。プログラムは
以下の関数が利用できます。
el_init() | |
ラインエディタを初期化し、他のすべてのライン編集関数が使用するデータ構造を 返します。 prog は、起動する側のプログラムの名前であり、どの設定を使用するか 決定するために editrc(5) ファイルを読み取るときに使用されます。 fin と fout はそれぞれ使用する入力ストリームと出力ストリームです。この ドキュメンテーションでは、 "the tty" の参照が実際にはこの入力/出力ストリームの 組み合わせを参照します。 | |
el_end() | |
クリーンアップし e で終了します。 el_init() で作成されたと想定されます。 | |
el_reset() | |
tty とパーサをリセットします。これは tty の状態を混乱させた可能性のある エラーの後で呼び出す必要があります。 | |
el_gets() | |
tty から 1 行を読み取ります。 count は、読み取られたキャラクタ数を 入れるように修正されます。処理が成功した場合は読み取られたラインを返し、 キャラクタが読取られないか、またはエラーが発生した場合は NULL を返します。 | |
el_getc() | |
tty から 1 キャラクタを読み取ります。 ch は、読み取られたキャラクタを 入れるように修正されます。処理が成功した場合は読み取られたキャラクタの数を 返し、そうでない場合は -1 を返します。 | |
el_push() | |
str
を入力ストリームに戻します。これはマクロ展開機構によって使用されます。
詳細については、
editrc(5)
の
bind
| |
el_parse() | |
argv
配列(サイズは
argc
エレメントです)
をパースし、組み込み
editline
コマンドを実行します。コマンドの接頭語が
"prog:"
の場合、
"prog"
が
el_init()
に指定された
prog
引数と一致するなら、
el_parse()
はコマンドを
実行するだけです。コマンドが未知の場合は戻り値は
-1 です。エラーがないかまたは
"prog"
が一致しなかった場合は
戻り値は
0 です。コマンドがエラーを
返したときは
1 です。詳細については、
editrc(5)
を参照してください。
注: argv[0] は el_parse() によって修正されることがあります。 "prog" と コマンド command の間のコロンは、NUL ("\0") で置き換えられます。 | |
el_set() | |
el_set()
editline
パラメータを設定します。
op
はどのパラメータを設定するかを決定し、
各操作には独自のパラメータリストがあります。
op の値については、必須引数リストとともに次のパラメータがサポート されています。 | |
EL_PROMPT,char *(*f)(EditLine *) | |
プロンプト印刷関数を f として定義します。これはプロンプトの入ったストリング を返すことです。 | |
EL_TERMINAL,const char *type | |
tty の端末タイプが type であると定義します。 type が NULL の場合は TERM にです。 | |
EL_EDITOR,const char *mode | |
編集モードを mode に設定します。それは "emacs" または "vi" の 1 つである必要があります。 | |
EL_SIGNAL,int flag | |
flag がゼロでない場合、 editline は、コマンド入力を読み取るときに、次の シグナル用のシグナルハンドラをインストールします。 SIGCONT, SIGHUP, SIGINT, SIGQUIT, SIGSTOP, SIGTERM, SIGTSTP, および SIGWINCH 。これら以外の場合、現在のシグナルハンドラが 使用されます。 | |
EL_BIND, | |
const char *, ..., NULL 組み込み bind コマンドを実行します。詳細については、 editrc(5) を 参照してください。 | |
EL_ECHOTC, | |
const char *, ..., NULL 組み込み echotc コマンドを実行します。詳細については、 editrc(5) を 参照してください。 | |
EL_SETTC, | |
const char *, ..., NULL 組み込み settc コマンドを実行します。詳細については、 editrc(5) を参照してください。 | |
EL_SETTY, | |
const char *, ..., NULL 組み込み setty コマンドを実行します。詳細については、 editrc(5) を 参照してください。 | |
EL_TELLTC, | |
const char *, ..., NULL 組み込み telltc コマンドを実行します。詳細については、 editrc(5) を 参照してください。 | |
EL_ADDFN, | |
const char *name, const char *help, "unsigned, char, (*func)(EditLine, *e,, int, ch) ユーザ定義関数 func() を追加します。これは name として参照され、 name に結合されたキーが入力されたときに呼び出されます。 help は name の説明です。 起動時に、 ch は呼び出しを起こすキーです。 func() の戻り値は次の 1 つです。 | |
CC_NORM | 通常のキャラクタを追加します。 |
CC_NEWLINE | 行末が入力されました。 |
CC_EOF | が入力されました。 |
CC_ARGHACK | 引数としてさらにコマンド入力を予期しています。表示されることは 何もしません。 |
CC_REFRESH | 表示をリフレッシュします。 |
CC_CURSOR | カーソルが移動されたので、 CC_REFRESH を更新および実行します。 |
CC_REDISPLAY | |
入力行全体を再表示します。これが便利なのは、キー結合がその他の 情報を出力する場合です。 | |
CC_ERROR | エラーが発生しました。ビープ音、そして tty をフラッシュします。 |
CC_FATAL | 致命的エラー。tty を既知の状態にリセットします。 |
EL_HIST, | |
History *(*func)(History *, int op, ...), const char *ptr どの歴史関数を使用するかを定義します。それは通常は history() です。 ptr は、 history_init() が返す値である必要があります。 | |
el_source() | |
file の内容を読むことで editline を初期化します。 el_parse() が、 file 内の行ごとに呼び出されます。 file が NULL の場合、 $HOME/.editrc を試します。 file の形式の詳細については、 editrc(5) を 参照してください。 | |
el_resize() | |
端末のサイズが変化する場合は呼び出す必要があります。 EL_SIGNAL が el_set() で設定されている場合、これは自動的に行われます。そうでない場合は、適切な 機会に el_resize() を呼び出すのはアプリケーションの責任です。 | |
el_line() | |
現在のラインについての編集情報を
LineInfo
で返します。これは次のように
定義されます。
typedef struct lineinfo { const char *buffer; /* バッファのアドレス */ const char *cursor; /* カーソルのアドレス */ const char *lastchar; /* 最後のキャラクタのアドレス */ } LineInfo; | |
el_insertstr() | |
カーソルがあるラインに str を挿入します。 str が空であるかフィットしない 場合は -1 を返します。それ以外の場合は 0 を返します。 | |
el_deletestr() | |
カーソルの前の num 個のキャラクタを削除します。 | |
el_data_set() | |
ユーザデータを data へ設定します。 | |
el_data_get() | |
ユーザデータを取得します。 | |
次の関数が利用できます。
history_init() | |
歴史リストを初期化し、他のすべての歴史関数が使用するデータ構造を返します。 | |
history_end() | |
クリーンアップし、
h
で終了します。
history_init()
で作成されたものと
想定されます。
| |
history() | |
歴史リストについて演算 op を実行します。演算が要求する オプション引数があります。 op について次の値が、必須引数リストとともに サポートされています。 | |
H_EVENT,int size | |
size エレメントに歴史のサイズを設定します。 | |
H_END | クリーンアップし、 h で終了します。 history_init() で作成されたものと 想定されます。 |
H_CLEAR | |
歴史をクリアします。
| |
H_FUNC, | |
void *ptr, history_gfun_t first, history_gfun_t next, history_gfun_t last, history_gfun_t prev, history_gfun_t curr, history_vfun_t clear, history_efun_t enter, history_efun_t add さまざまな歴史演算を実行する関数を定義します。 ptr は、関数が起動されるときに関数に指定される引数です。 | |
H_FIRST | |
歴史の最初のエレメントを返します。 | |
H_LAST | |
歴史の最後のエレメントを返します。 | |
H_PREV | |
歴史の直前のエレメントを返します。 | |
H_NEXT | |
歴史の次のエレメントを返します。 | |
H_CURR | |
歴史の現在のエレメントを返します。 | |
H_ADD,const char *str | |
歴史の現在のエレメントの末尾に str を追加するか、またはエレメントがない 場合は H_ENTER で 1 つのエレメントを作成します。 | |
H_ENTER,const char *str | |
str を新しいエレメントとして history() に追加します。必要であれば、最も古い エントリを削除して、リストを作成されたサイズに保ちます。 | |
H_PREV_STR,const char *str | |
str で開始する、最も近い直前のイベントを返します。 | |
H_NEXT_STR,const char *str | |
str で開始する、最も近い次のイベントを返します。 | |
H_PREV_EVENT,int e | |
e という番号の直前のイベントを返します。 | |
H_NEXT_EVENT,int e | |
e という番号の次のイベントを返します。 | |
H_LOAD,const char *file | |
file に保存された歴史リストをロードします。 | |
H_SAVE,const char *file | |
歴史リストを file に保存します。 | |
el_parse() は、指定された argv[0] を修正してはなりません。
トークン化関数は <histedit.h> 内では公に定義されていません。
EDITLINE (3) | January 11, 1997 |
総合手引 | セクション 3 | English | オプション |
このマニュアルページサービスについてのご意見は Ben Bullock にお知らせください。 Privacy policy.
“ | … one of the main causes of the fall of the Roman Empire was that, lacking zero, they had no way to indicate successful termination of their C programs. | ” |
— Robert Firth |