@@ -1260,9 +1260,6 @@ static int register_variable (const char *project_name, const char *framework_na
1260
1260
mca_base_var_init ();
1261
1261
}
1262
1262
1263
- /* XXX -- readd project name once it is available in the component structure */
1264
- project_name = NULL ;
1265
-
1266
1263
/* See if this entry is already in the array */
1267
1264
var_index = var_find (project_name , framework_name , component_name , variable_name ,
1268
1265
true);
@@ -1487,16 +1484,46 @@ int mca_base_var_register_synonym (int synonym_for, const char *project_name,
1487
1484
synonym_for , NULL );
1488
1485
}
1489
1486
1487
+ static int var_get_env (mca_base_var_t * var , const char * name , char * * source , char * * value )
1488
+ {
1489
+ char * source_env , * value_env ;
1490
+ int ret ;
1491
+
1492
+ ret = asprintf (& source_env , "%sSOURCE_%s" , mca_prefix , name );
1493
+ if (0 > ret ) {
1494
+ return OPAL_ERROR ;
1495
+ }
1496
+
1497
+ ret = asprintf (& value_env , "%s%s" , mca_prefix , name );
1498
+ if (0 > ret ) {
1499
+ free (source_env );
1500
+ return OPAL_ERROR ;
1501
+ }
1502
+
1503
+ * source = getenv (source_env );
1504
+ * value = getenv (value_env );
1505
+
1506
+ free (source_env );
1507
+ free (value_env );
1508
+
1509
+ if (NULL == * value ) {
1510
+ * source = NULL ;
1511
+ return OPAL_ERR_NOT_FOUND ;
1512
+ }
1513
+
1514
+ return OPAL_SUCCESS ;
1515
+ }
1516
+
1490
1517
/*
1491
1518
* Lookup a param in the environment
1492
1519
*/
1493
1520
static int var_set_from_env (mca_base_var_t * var )
1494
1521
{
1495
1522
const char * var_full_name = var -> mbv_full_name ;
1523
+ const char * var_long_name = var -> mbv_long_name ;
1496
1524
bool deprecated = VAR_IS_DEPRECATED (var [0 ]);
1497
1525
bool is_synonym = VAR_IS_SYNONYM (var [0 ]);
1498
- char * source , * source_env ;
1499
- char * value , * value_env ;
1526
+ char * source_env , * value_env ;
1500
1527
int ret ;
1501
1528
1502
1529
if (is_synonym ) {
@@ -1510,25 +1537,13 @@ static int var_set_from_env (mca_base_var_t *var)
1510
1537
}
1511
1538
}
1512
1539
1513
- ret = asprintf (& source , "%sSOURCE_%s" , mca_prefix , var_full_name );
1514
- if (0 > ret ) {
1515
- return OPAL_ERROR ;
1516
- }
1517
-
1518
- ret = asprintf (& value , "%s%s" , mca_prefix , var_full_name );
1519
- if (0 > ret ) {
1520
- free (source );
1521
- return OPAL_ERROR ;
1540
+ ret = var_get_env (var , var_long_name , & source_env , & value_env );
1541
+ if (OPAL_SUCCESS != ret ) {
1542
+ ret = var_get_env (var , var_full_name , & source_env , & value_env );
1522
1543
}
1523
1544
1524
- source_env = getenv (source );
1525
- value_env = getenv (value );
1526
-
1527
- free (source );
1528
- free (value );
1529
-
1530
- if (NULL == value_env ) {
1531
- return OPAL_ERR_NOT_FOUND ;
1545
+ if (OPAL_SUCCESS != ret ) {
1546
+ return ret ;
1532
1547
}
1533
1548
1534
1549
/* we found an environment variable but this variable is default-only. print
@@ -1598,7 +1613,6 @@ static int var_set_from_env (mca_base_var_t *var)
1598
1613
return var_set_from_string (var , value_env );
1599
1614
}
1600
1615
1601
-
1602
1616
/*
1603
1617
* Lookup a param in the files
1604
1618
*/
0 commit comments