diff options
author | Michael Brown <mcb30@ipxe.org> | 2024-06-20 16:21:28 -0700 |
---|---|---|
committer | Michael Brown <mcb30@ipxe.org> | 2024-06-20 16:24:38 -0700 |
commit | 1c3c5e2b22ca31bbf77c39aef51671d0b6e95767 (patch) | |
tree | 822160fed4bc9e189bbbc70087c3e43e1b3098c6 /src/hci | |
parent | 039019039e89aedf4c5a0d81c351638a1e036335 (diff) | |
download | ipxe-1c3c5e2b22ca31bbf77c39aef51671d0b6e95767.tar.gz |
[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>
Diffstat (limited to 'src/hci')
-rw-r--r-- | src/hci/commands/dynui_cmd.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/hci/commands/dynui_cmd.c b/src/hci/commands/dynui_cmd.c index 557c5db5d..5aed3d034 100644 --- a/src/hci/commands/dynui_cmd.c +++ b/src/hci/commands/dynui_cmd.c @@ -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 ) { |