Skip to content

Commit 65472a3

Browse files
committed
mca/base: add yes/no as valid values for boolean variables
This commit expands the set of accepted values for boolean values to include yes/no as synonyms for 1/0. Signed-off-by: Nathan Hjelm <[email protected]>
1 parent 61fe2cc commit 65472a3

File tree

3 files changed

+17
-5
lines changed

3 files changed

+17
-5
lines changed

opal/mca/base/mca_base_var_enum.c

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,13 +58,16 @@ static int mca_base_var_enum_bool_vfs (mca_base_var_enum_t *self, const char *st
5858
char *tmp;
5959
int v;
6060

61+
/* skip whitespace */
62+
string_value += strspn (string_value, " \t\n\v\f\r");
63+
6164
v = strtol (string_value, &tmp, 10);
6265
if (*tmp != '\0') {
6366
if (0 == strcmp (string_value, "true") || 0 == strcmp (string_value, "t") ||
64-
0 == strcmp (string_value, "enabled")) {
67+
0 == strcmp (string_value, "enabled") || 0 == strcmp (string_value, "yes")) {
6568
v = 1;
6669
} else if (0 == strcmp (string_value, "false") || 0 == strcmp (string_value, "f") ||
67-
0 == strcmp (string_value, "disabled")) {
70+
0 == strcmp (string_value, "disabled") || 0 == strcmp (string_value, "no")) {
6871
v = 0;
6972
} else {
7073
return OPAL_ERR_VALUE_OUT_OF_BOUNDS;
@@ -88,7 +91,7 @@ static int mca_base_var_enum_bool_sfv (mca_base_var_enum_t *self, const int valu
8891

8992
static int mca_base_var_enum_bool_dump (mca_base_var_enum_t *self, char **out)
9093
{
91-
*out = strdup ("0: f|false|disabled, 1: t|true|enabled");
94+
*out = strdup ("0: f|false|disabled|no, 1: t|true|enabled|yes");
9295
return *out ? OPAL_SUCCESS : OPAL_ERR_OUT_OF_RESOURCE;
9396
}
9497

opal/mca/base/mca_base_var_enum.h

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,4 +166,15 @@ OPAL_DECLSPEC OBJ_CLASS_DECLARATION(mca_base_var_enum_t);
166166
OPAL_DECLSPEC int mca_base_var_enum_create (const char *name, const mca_base_var_enum_value_t values[],
167167
mca_base_var_enum_t **enumerator);
168168

169+
/* standard enumerators. it is invalid to call OBJ_RELEASE on any of these enumerators */
170+
/**
171+
* Boolean enumerator
172+
*
173+
* This enumerator maps:
174+
* positive integer, true, yes, enabled, t -> 1
175+
* 0, false, no, disabled, f -> 0
176+
*/
177+
extern mca_base_var_enum_t mca_base_var_enum_bool;
178+
179+
169180
#endif /* !defined(MCA_BASE_VAR_ENUM_H) */

opal/mca/base/mca_base_vari.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,8 +73,6 @@ extern const char *var_type_names[];
7373
extern const size_t var_type_sizes[];
7474
extern bool mca_base_var_initialized;
7575

76-
extern mca_base_var_enum_t mca_base_var_enum_bool;
77-
7876
/**
7977
* \internal
8078
*

0 commit comments

Comments
 (0)