|
GadgetSeed
0.9.6
|
ラインエディタ [詳解]

マクロ定義 | |
| #define | BS 0x08 |
| #define | HT 0x09 |
| #define | LF 0x0a |
| #define | CR 0x0d |
| lineedit.stat | |
列挙型 | |
| enum | { ESC0, ESC1, ESC2 } |
関数 | |
| void | init_lineedit (struct st_lineedit *le) |
| lineeditを初期化する [詳解] | |
| int | do_lineedit (struct st_lineedit *le, uchar ch) |
| リターンを受けるまでの1行編集を行う 1文字づつデータを入れる [詳解] | |
| void | new_lineedit (struct st_lineedit *le) |
| 編集中のエディタを初期化(コマンド実行後にバッファ破棄) [詳解] | |
| void | set_str_lineedit (struct st_lineedit *le, uchar *str) |
| 編集文字列を設定する [詳解] | |
| void | draw_lineedit (struct st_lineedit *le) |
| 表示する [詳解] | |
| void | insert_str_lineedit (struct st_lineedit *le, uchar *str, unsigned int len) |
ラインエディタ
機能
ラインエディタ、ヒストリ対応
VT100互換のターミナル用
キー
↑ 1b 5b 41
↓ 1b 5b 42
CTRL-P 10
CTRL-N 0e ヒストリー
← 1b 5b 44
→ 1b 5b 43 カーソル移動
CTRL-A 01 カーソルを先頭へ
CTRL-B 02 カーソルを1文字前へ
CTRL-D 04 1文字削除
CTRL-E 05 カーソルを末尾へ
CTRL-F 06 カーソルを1文字先へ
CTRL-H 08 1文字前を削除(BS)
CTRL-K 0b カーソル以降を削除
lineedit.c に定義があります。
| anonymous enum |
| 列挙値 | |
|---|---|
| ESC0 | エスケープシーケンス未受信 |
| ESC1 | エスケープシーケンス1バイト目 |
| ESC2 | エスケープシーケンス2バイト目 |
lineedit.c の 40 行目に定義があります。
| int do_lineedit | ( | struct st_lineedit * | le, |
| uchar | ch | ||
| ) |
リターンを受けるまでの1行編集を行う 1文字づつデータを入れる
| [in] | le | 編集するlineedit |
| [in] | ch | 入力文字 |
lineedit.c の 71 行目に定義があります。
参照先 ESC0, ESC1, ESC2, st_lineedit::stat.
| void draw_lineedit | ( | struct st_lineedit * | le | ) |
表示する
| [in] | le | 文字列を設定するlineedit |
lineedit.c の 337 行目に定義があります。
参照先 st_lineedit::buf, cputc(), st_lineedit::cur_pos, GSC_SHELL_MAX_LINE_COLUMS.

| void init_lineedit | ( | struct st_lineedit * | le | ) |
lineeditを初期化する
| [in] | le | 初期化するlineedit |
lineedit.c の 51 行目に定義があります。
参照先 st_lineedit::buf, st_lineedit::cur_pos, ESC0, GSC_SHELL_MAX_LINE_COLUMS, st_lineedit::stat.
| void new_lineedit | ( | struct st_lineedit * | le | ) |
編集中のエディタを初期化(コマンド実行後にバッファ破棄)
| [in] | le | 編集するlineedit |
lineedit.c の 290 行目に定義があります。
参照先 st_lineedit::buf, st_lineedit::cur_pos, ESC0, GSC_SHELL_MAX_LINE_COLUMS, st_lineedit::stat.
参照元 dispose_shell_line().

| void set_str_lineedit | ( | struct st_lineedit * | le, |
| uchar * | str | ||
| ) |