mirror of https://github.com/ipxe/ipxe.git
[dynui] Add concept of a secret user interface item
For interactive forms, the concept of a secret value becomes meaningful (e.g. for password fields). Add a flag to indicate that an item represents a secret value, and allow this flag to be set via the "--secret" option of the "item" command. This flag has no meaning for menu items, but is silently accepted anyway to keep the code size minimal. Signed-off-by: Michael Brown <mcb30@ipxe.org>pull/1243/head
parent
039019039e
commit
1c3c5e2b22
|
@ -116,6 +116,8 @@ struct item_options {
|
|||
unsigned int key;
|
||||
/** Use as default */
|
||||
int is_default;
|
||||
/** Value is a secret */
|
||||
int is_secret;
|
||||
/** Use as a separator */
|
||||
int is_gap;
|
||||
};
|
||||
|
@ -128,6 +130,8 @@ static struct option_descriptor item_opts[] = {
|
|||
struct item_options, key, parse_key ),
|
||||
OPTION_DESC ( "default", 'd', no_argument,
|
||||
struct item_options, is_default, parse_flag ),
|
||||
OPTION_DESC ( "secret", 's', no_argument,
|
||||
struct item_options, is_secret, parse_flag ),
|
||||
OPTION_DESC ( "gap", 'g', no_argument,
|
||||
struct item_options, is_gap, parse_flag ),
|
||||
};
|
||||
|
@ -177,6 +181,8 @@ static int item_exec ( int argc, char **argv ) {
|
|||
/* Add dynamic user interface item */
|
||||
if ( opts.is_default )
|
||||
flags |= DYNUI_DEFAULT;
|
||||
if ( opts.is_secret )
|
||||
flags |= DYNUI_SECRET;
|
||||
item = add_dynui_item ( dynui, name, ( text ? text : "" ), flags,
|
||||
opts.key );
|
||||
if ( ! item ) {
|
||||
|
|
|
@ -44,6 +44,9 @@ struct dynamic_item {
|
|||
/** Dynamic user interface item is default selection */
|
||||
#define DYNUI_DEFAULT 0x0001
|
||||
|
||||
/** Dynamic user interface item represents a secret */
|
||||
#define DYNUI_SECRET 0x0002
|
||||
|
||||
extern struct dynamic_ui * create_dynui ( const char *name, const char *title );
|
||||
extern struct dynamic_item * add_dynui_item ( struct dynamic_ui *dynui,
|
||||
const char *name,
|
||||
|
|
Loading…
Reference in New Issue