Provide an edit history to allow caller to efficiently update display.
[gpxe.git] / src / include / gpxe / editstring.h
1 #ifndef _GPXE_EDITSTRING_H
2 #define _GPXE_EDITSTRING_H
3
4 /** @file
5  *
6  * Editable strings
7  *
8  */
9
10 /** An editable string */
11 struct edit_string {
12         /** Buffer for string */
13         char *buf;
14         /** Size of buffer (including terminating NUL) */
15         size_t len;
16         /** Cursor position */
17         unsigned int cursor;
18
19         /* The following items are the edit history */
20
21         /** Last cursor position */
22         unsigned int last_cursor;
23         /** Start of modified portion of string */
24         unsigned int mod_start;
25         /** End of modified portion of string */
26         unsigned int mod_end;
27 };
28
29 extern int edit_string ( struct edit_string *string, int key );
30
31 #endif /* _GPXE_EDITSTRING_H */