mirror of
https://github.com/xcat2/xNBA.git
synced 2025-02-12 16:48:11 +00:00
[parseopt] Allow "prompt" command to accept character literals for --key
Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
parent
aac9718fd6
commit
0b1fe005b3
@ -26,7 +26,6 @@ FILE_LICENCE ( GPL2_OR_LATER );
|
||||
#include <errno.h>
|
||||
#include <getopt.h>
|
||||
#include <ipxe/netdevice.h>
|
||||
#include <ipxe/image.h>
|
||||
#include <ipxe/parseopt.h>
|
||||
|
||||
/** @file
|
||||
@ -129,6 +128,25 @@ int parse_flag ( const char *text __unused, int *flag ) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Parse key
|
||||
*
|
||||
* @v text Text
|
||||
* @ret key Key
|
||||
* @ret rc Return status code
|
||||
*/
|
||||
int parse_key ( const char *text, unsigned int *key ) {
|
||||
|
||||
/* Interpret single characters as being a literal key character */
|
||||
if ( text[0] && ! text[1] ) {
|
||||
*key = text[0];
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Otherwise, interpret as an integer */
|
||||
return parse_integer ( text, key );
|
||||
}
|
||||
|
||||
/**
|
||||
* Print command usage message
|
||||
*
|
||||
|
@ -302,7 +302,7 @@ struct prompt_options {
|
||||
/** "prompt" option list */
|
||||
static struct option_descriptor prompt_opts[] = {
|
||||
OPTION_DESC ( "key", 'k', required_argument,
|
||||
struct prompt_options, key, parse_integer ),
|
||||
struct prompt_options, key, parse_key ),
|
||||
OPTION_DESC ( "timeout", 't', required_argument,
|
||||
struct prompt_options, timeout, parse_integer ),
|
||||
};
|
||||
|
@ -117,6 +117,7 @@ extern int parse_string ( const char *text, const char **value );
|
||||
extern int parse_integer ( const char *text, unsigned int *value );
|
||||
extern int parse_netdev ( const char *text, struct net_device **netdev );
|
||||
extern int parse_flag ( const char *text __unused, int *flag );
|
||||
extern int parse_key ( const char *text, unsigned int *key );
|
||||
extern void print_usage ( struct command_descriptor *cmd, char **argv );
|
||||
extern int reparse_options ( int argc, char **argv,
|
||||
struct command_descriptor *cmd, void *opts );
|
||||
|
Loading…
x
Reference in New Issue
Block a user