summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/hci/mucurses/widgets/editbox.c3
-rw-r--r--src/hci/readline.c3
-rw-r--r--src/include/ipxe/editstring.h13
3 files changed, 15 insertions, 4 deletions
diff --git a/src/hci/mucurses/widgets/editbox.c b/src/hci/mucurses/widgets/editbox.c
index 40e22d629..5d2ba56cc 100644
--- a/src/hci/mucurses/widgets/editbox.c
+++ b/src/hci/mucurses/widgets/editbox.c
@@ -46,8 +46,7 @@ void init_editbox ( struct edit_box *box, char *buf, size_t len,
WINDOW *win, unsigned int row, unsigned int col,
unsigned int width, unsigned int flags ) {
memset ( box, 0, sizeof ( *box ) );
- box->string.buf = buf;
- box->string.len = len;
+ init_editstring ( &box->string, buf, len );
box->string.cursor = strlen ( buf );
box->win = ( win ? win : stdscr );
box->row = row;
diff --git a/src/hci/readline.c b/src/hci/readline.c
index e76d2d09a..666ebf0c4 100644
--- a/src/hci/readline.c
+++ b/src/hci/readline.c
@@ -93,8 +93,7 @@ char * readline ( const char *prompt ) {
printf ( "%s", prompt );
memset ( &string, 0, sizeof ( string ) );
- string.buf = buf;
- string.len = sizeof ( buf );
+ init_editstring ( &string, buf, sizeof ( buf ) );
buf[0] = '\0';
while ( 1 ) {
diff --git a/src/include/ipxe/editstring.h b/src/include/ipxe/editstring.h
index 5c1a18bea..26cb434cf 100644
--- a/src/include/ipxe/editstring.h
+++ b/src/include/ipxe/editstring.h
@@ -28,6 +28,19 @@ struct edit_string {
unsigned int mod_end;
};
+/**
+ * Initialise editable string
+ *
+ * @v string Editable string
+ * @v buf Buffer for string
+ * @v len Length of buffer
+ */
+static inline void init_editstring ( struct edit_string *string, char *buf,
+ size_t len ) {
+ string->buf = buf;
+ string->len = len;
+}
+
extern int edit_string ( struct edit_string *string, int key ) __nonnull;
#endif /* _IPXE_EDITSTRING_H */