GadgetSeed  0.9.6
lineedit.h
[詳解]
1 /** @file
2  @brief ラインエディタ
3 
4  @date 2002.03.30
5  @author Takashi SHUDO
6 */
7 
8 #ifndef LINEEDIT_H
9 #define LINEEDIT_H
10 
11 #include "sysconfig.h"
12 #include "str.h"
13 #include "console.h"
14 
15 #ifndef GSC_SHELL_MAX_LINE_COLUMS
16 #define GSC_SHELL_MAX_LINE_COLUMS 255 ///< $gsc shellコマンドラインの最大文字数
17 #endif
18 
19 // ASCIIコード
20 #define ASCII_CTRL_C 0x03 // CTRL + C
21 #define ASCII_CTRL_D 0x04 // CTRL + D
22 #define ASCII_HT 0x09 // HT(水平タブ)
23 #define ASCII_LF 0x0a // LF
24 #define ASCII_CR 0x0d // CR
25 #define ASCII_XOFF 0x11
26 #define ASCII_XON 0x13
27 
28 // ヒストリを使用する場合の使用するメモリ=((SHELL_MAX_COM_HIS+2) * GSC_SHELL_MAX_LINE_COLUMS)
29 
30 struct st_lineedit {
31  uchar buf[GSC_SHELL_MAX_LINE_COLUMS+1]; ///< 編集中文字列
32  unsigned int cur_pos; ///< カーソル位置
33  int stat; ///< エスケープシーケンスデコード状態
34 }; ///< ラインエディタ
35 
36 // do_lineedit()の戻り値
37 #define LER_NOP 0
38 #define LER_RETURN 1
39 #define LER_BACKLINE 2
40 #define LER_NEXTLINE 3
41 
42 void init_lineedit(struct st_lineedit *le);
43 int do_lineedit(struct st_lineedit *le, uchar ch);
44 void new_lineedit(struct st_lineedit *le);
45 void set_str_lineedit(struct st_lineedit *le, uchar *str);
46 void draw_lineedit(struct st_lineedit *le);
47 void insert_str_lineedit(struct st_lineedit *le, uchar *str, unsigned int len);
48 
49 #endif // LINEEDIT_H
unsigned char uchar
GadgetSeedの文字(列)は unsigned char 型となる
Definition: str.h:13
unsigned int cur_pos
カーソル位置
Definition: lineedit.h:32
ラインエディタ
Definition: lineedit.h:30
uchar buf[GSC_SHELL_MAX_LINE_COLUMS+1]
編集中文字列
Definition: lineedit.h:31
文字列処理
int do_lineedit(struct st_lineedit *le, uchar ch)
リターンを受けるまでの1行編集を行う 1文字づつデータを入れる
Definition: lineedit.c:71
void draw_lineedit(struct st_lineedit *le)
表示する
Definition: lineedit.c:337
void set_str_lineedit(struct st_lineedit *le, uchar *str)
編集文字列を設定する
Definition: lineedit.c:308
void new_lineedit(struct st_lineedit *le)
編集中のエディタを初期化(コマンド実行後にバッファ破棄)
Definition: lineedit.c:290
void init_lineedit(struct st_lineedit *le)
lineeditを初期化する
Definition: lineedit.c:51
コンソールI/O
#define GSC_SHELL_MAX_LINE_COLUMS
$gsc shellコマンドラインの最大文字数
Definition: lineedit.h:16
int stat
エスケープシーケンスデコード状態
Definition: lineedit.h:33