mirror of
https://github.com/ipxe/ipxe
synced 2026-02-12 21:29:39 +03:00
[editbox] Allow for password widgets that do not display their contents
This commit is contained in:
@@ -38,11 +38,11 @@
|
||||
* @v row Row
|
||||
* @v col Starting column
|
||||
* @v width Width
|
||||
*
|
||||
* @v flags Flags
|
||||
*/
|
||||
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 width, unsigned int flags ) {
|
||||
memset ( box, 0, sizeof ( *box ) );
|
||||
box->string.buf = buf;
|
||||
box->string.len = len;
|
||||
@@ -51,6 +51,7 @@ void init_editbox ( struct edit_box *box, char *buf, size_t len,
|
||||
box->row = row;
|
||||
box->col = col;
|
||||
box->width = width;
|
||||
box->flags = flags;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -86,7 +87,11 @@ void draw_editbox ( struct edit_box *box ) {
|
||||
len = ( strlen ( box->string.buf ) - first );
|
||||
if ( len > width )
|
||||
len = width;
|
||||
memcpy ( buf, ( box->string.buf + first ), len );
|
||||
if ( box->flags & EDITBOX_STARS ) {
|
||||
memset ( buf, '*', len );
|
||||
} else {
|
||||
memcpy ( buf, ( box->string.buf + first ), len );
|
||||
}
|
||||
|
||||
/* Print box content and move cursor */
|
||||
if ( ! box->win )
|
||||
|
||||
@@ -123,7 +123,7 @@ static void load_setting ( struct setting_widget *widget ) {
|
||||
init_editbox ( &widget->editbox, widget->value,
|
||||
sizeof ( widget->value ), NULL, widget->row,
|
||||
( widget->col + offsetof ( struct setting_row, value )),
|
||||
sizeof ( ( ( struct setting_row * ) NULL )->value ) );
|
||||
sizeof ( ( ( struct setting_row * ) NULL )->value ), 0);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user