Changed the function signature of config_get_mnemonic(). This new signature uses the correct types so that the default argument promotions caused by varargs is in spec.

This commit is contained in:
Scoopta 2024-02-08 11:08:16 -08:00
parent c725ce2496
commit a9868654c2
3 changed files with 8 additions and 8 deletions

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2019-2020 Scoopta * Copyright (C) 2019-2024 Scoopta
* This file is part of Wofi * This file is part of Wofi
* Wofi is free software: you can redistribute it and/or modify * Wofi is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
@ -28,6 +28,6 @@ void config_load(struct map* map, const char* config);
char* config_get(struct map* config, const char* key, char* def_opt); char* config_get(struct map* config, const char* key, char* def_opt);
uint8_t config_get_mnemonic(struct map* config, const char* key, char* def_opt, uint8_t num_choices, ...); int config_get_mnemonic(struct map* config, const char* key, char* def_opt, int num_choices, ...);
#endif #endif

View File

@ -42,7 +42,7 @@ Gets a config entry, if the entry is not set then it returns \fBdef_opt\fR.
\- The default value to be returned if the key does not exist. \- The default value to be returned if the key does not exist.
.TP .TP
.B uint8_t config_get_mnemonic(struct map* config, const char* key, char* def_opt, uint8_t num_choices, ...) .B int config_get_mnemonic(struct map* config, const char* key, char* def_opt, int num_choices, ...)
Gets an enum value from the config. If the value is not set then it returns \fBdef_opt\fR. Gets an enum value from the config. If the value is not set then it returns \fBdef_opt\fR.
.B struct map* config .B struct map* config
@ -54,7 +54,7 @@ Gets an enum value from the config. If the value is not set then it returns \fBd
.B char* def_opt .B char* def_opt
\- The default value to be returned if the key does not exist. \- The default value to be returned if the key does not exist.
.B uint8_t num_choices .B int num_choices
\- The number of enum options available. \- The number of enum options available.
.B varargs .B varargs

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2019-2020 Scoopta * Copyright (C) 2019-2024 Scoopta
* This file is part of Wofi * This file is part of Wofi
* Wofi is free software: you can redistribute it and/or modify * Wofi is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
@ -81,12 +81,12 @@ char* config_get(struct map* config, const char* key, char* def_opt) {
return opt; return opt;
} }
uint8_t config_get_mnemonic(struct map* config, const char* key, char* def_opt, uint8_t num_choices, ...) { int config_get_mnemonic(struct map* config, const char* key, char* def_opt, int num_choices, ...) {
char* opt = config_get(config, key, def_opt); char* opt = config_get(config, key, def_opt);
va_list ap; va_list ap;
va_start(ap, num_choices); va_start(ap, num_choices);
uint8_t result = 0; int result = 0;
for(uint8_t i = 0; i < num_choices; i++) { for(int i = 0; i < num_choices; i++) {
char* cmp_str = va_arg(ap, char*); char* cmp_str = va_arg(ap, char*);
if(strcmp(opt, cmp_str) == 0) { if(strcmp(opt, cmp_str) == 0) {
result = i; result = i;