[readline] Add init_editstring() wrapper function

Standardise on using init_editstring() to initialise an embedded
editable string, to match the coding style used by other embedded
objects.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
pull/1/head
Michael Brown 2011-03-29 16:34:07 +01:00
parent 293e347a2e
commit 6a6dd5c452
3 changed files with 15 additions and 4 deletions

View File

@ -46,8 +46,7 @@ void init_editbox ( struct edit_box *box, char *buf, size_t len,
WINDOW *win, unsigned int row, unsigned int col, WINDOW *win, unsigned int row, unsigned int col,
unsigned int width, unsigned int flags ) { unsigned int width, unsigned int flags ) {
memset ( box, 0, sizeof ( *box ) ); memset ( box, 0, sizeof ( *box ) );
box->string.buf = buf; init_editstring ( &box->string, buf, len );
box->string.len = len;
box->string.cursor = strlen ( buf ); box->string.cursor = strlen ( buf );
box->win = ( win ? win : stdscr ); box->win = ( win ? win : stdscr );
box->row = row; box->row = row;

View File

@ -93,8 +93,7 @@ char * readline ( const char *prompt ) {
printf ( "%s", prompt ); printf ( "%s", prompt );
memset ( &string, 0, sizeof ( string ) ); memset ( &string, 0, sizeof ( string ) );
string.buf = buf; init_editstring ( &string, buf, sizeof ( buf ) );
string.len = sizeof ( buf );
buf[0] = '\0'; buf[0] = '\0';
while ( 1 ) { while ( 1 ) {

View File

@ -28,6 +28,19 @@ struct edit_string {
unsigned int mod_end; 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; extern int edit_string ( struct edit_string *string, int key ) __nonnull;
#endif /* _IPXE_EDITSTRING_H */ #endif /* _IPXE_EDITSTRING_H */