diff --git a/src/hci/editstring.c b/src/hci/editstring.c index 9207e58a7..996528ff5 100644 --- a/src/hci/editstring.c +++ b/src/hci/editstring.c @@ -117,6 +117,17 @@ static void kill_eol ( struct edit_string *string ) { insert_delete ( string, ~( ( size_t ) 0 ), NULL ); } +/** + * Replace editable string + * + * @v string Editable string + * @v replacement Replacement string + */ +void replace_string ( struct edit_string *string, const char *replacement ) { + string->cursor = 0; + insert_delete ( string, ~( ( size_t ) 0 ), replacement ); +} + /** * Edit editable string * diff --git a/src/include/ipxe/editstring.h b/src/include/ipxe/editstring.h index 26cb434cf..2ef546a63 100644 --- a/src/include/ipxe/editstring.h +++ b/src/include/ipxe/editstring.h @@ -41,6 +41,8 @@ static inline void init_editstring ( struct edit_string *string, char *buf, string->len = len; } +extern void replace_string ( struct edit_string *string, + const char *replacement ) __nonnull; extern int edit_string ( struct edit_string *string, int key ) __nonnull; #endif /* _IPXE_EDITSTRING_H */