|
@@ -18,6 +18,7 @@
|
18
|
18
|
|
19
|
19
|
#include <assert.h>
|
20
|
20
|
#include <string.h>
|
|
21
|
+#include <gpxe/keys.h>
|
21
|
22
|
#include <gpxe/editstring.h>
|
22
|
23
|
|
23
|
24
|
/** @file
|
|
@@ -124,6 +125,7 @@ static void kill_eol ( struct edit_string *string ) {
|
124
|
125
|
*/
|
125
|
126
|
int edit_string ( struct edit_string *string, int key ) {
|
126
|
127
|
int retval = 0;
|
|
128
|
+ size_t len = strlen ( string->buf );
|
127
|
129
|
|
128
|
130
|
/* Prepare edit history */
|
129
|
131
|
string->last_cursor = string->cursor;
|
|
@@ -135,33 +137,39 @@ int edit_string ( struct edit_string *string, int key ) {
|
135
|
137
|
/* Printable character; insert at current position */
|
136
|
138
|
insert_character ( string, key );
|
137
|
139
|
} else switch ( key ) {
|
138
|
|
- case 0x08: /* Ctrl-H */
|
|
140
|
+ case KEY_BACKSPACE:
|
139
|
141
|
/* Backspace */
|
140
|
142
|
backspace ( string );
|
141
|
143
|
break;
|
142
|
|
- case 0x04: /* Ctrl-D */
|
|
144
|
+ case KEY_DC:
|
|
145
|
+ case CTRL_D:
|
143
|
146
|
/* Delete character */
|
144
|
147
|
delete_character ( string );
|
145
|
148
|
break;
|
146
|
|
- case 0x0b: /* Ctrl-K */
|
|
149
|
+ case CTRL_K:
|
|
150
|
+ /* Delete to end of line */
|
147
|
151
|
kill_eol ( string );
|
148
|
152
|
break;
|
149
|
|
- case 0x01: /* Ctrl-A */
|
|
153
|
+ case KEY_HOME:
|
|
154
|
+ case CTRL_A:
|
150
|
155
|
/* Start of line */
|
151
|
156
|
string->cursor = 0;
|
152
|
157
|
break;
|
153
|
|
- case 0x05: /* Ctrl-E */
|
|
158
|
+ case KEY_END:
|
|
159
|
+ case CTRL_E:
|
154
|
160
|
/* End of line */
|
155
|
|
- string->cursor = strlen ( string->buf );
|
|
161
|
+ string->cursor = len;
|
156
|
162
|
break;
|
157
|
|
- case 0x02: /* Ctrl-B */
|
|
163
|
+ case KEY_LEFT:
|
|
164
|
+ case CTRL_B:
|
158
|
165
|
/* Cursor left */
|
159
|
166
|
if ( string->cursor > 0 )
|
160
|
167
|
string->cursor--;
|
161
|
168
|
break;
|
162
|
|
- case 0x06: /* Ctrl-F */
|
|
169
|
+ case KEY_RIGHT:
|
|
170
|
+ case CTRL_F:
|
163
|
171
|
/* Cursor right */
|
164
|
|
- if ( string->cursor < ( string->len - 1 ) )
|
|
172
|
+ if ( string->cursor < len )
|
165
|
173
|
string->cursor++;
|
166
|
174
|
break;
|
167
|
175
|
default:
|