cli: accept numeric difficulty values

This commit is contained in:
Andrei Alexeyev 2021-05-06 21:18:42 +03:00
parent 8ff5890abe
commit b2b7645cab
No known key found for this signature in database
GPG key ID: 72D26128040B9690

View file

@ -165,6 +165,7 @@ int cli_args(int argc, char **argv, CLIAction *a) {
break;
case 'd':
a->diff = D_Any;
for(int i = D_Easy ; i <= NUM_SELECTABLE_DIFFICULTIES; i++) {
if(strcasecmp(optarg, difficulty_name(i)) == 0) {
a->diff = i;
@ -172,6 +173,14 @@ int cli_args(int argc, char **argv, CLIAction *a) {
}
}
if(a->diff == D_Any) {
char *end;
int dval = strtol(optarg, &end, 10);
if(dval >= D_Easy && dval <= D_Lunatic && end == optarg + strlen(optarg)) {
a->diff = dval;
}
}
if(a->diff == D_Any) {
log_fatal("Invalid difficulty '%s'", optarg);
}