makedep: Add helper functions to get and set variables in string arrays.
This commit is contained in:
parent
83fe4ffb36
commit
43fd82c612
|
@ -344,6 +344,42 @@ static void strarray_add_uniq( struct strarray *array, const char *str )
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*******************************************************************
|
||||||
|
* strarray_get_value
|
||||||
|
*
|
||||||
|
* Find a value in a name/value pair string array.
|
||||||
|
*/
|
||||||
|
static char *strarray_get_value( const struct strarray *array, const char *name )
|
||||||
|
{
|
||||||
|
unsigned int i;
|
||||||
|
|
||||||
|
for (i = 0; i < array->count; i += 2)
|
||||||
|
if (!strcmp( array->str[i], name )) return xstrdup( array->str[i + 1] );
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*******************************************************************
|
||||||
|
* strarray_set_value
|
||||||
|
*
|
||||||
|
* Define a value in a name/value pair string array.
|
||||||
|
*/
|
||||||
|
static void strarray_set_value( struct strarray *array, const char *name, const char *value )
|
||||||
|
{
|
||||||
|
unsigned int i;
|
||||||
|
|
||||||
|
/* redefining a variable replaces the previous value */
|
||||||
|
for (i = 0; i < array->count; i += 2)
|
||||||
|
{
|
||||||
|
if (strcmp( array->str[i], name )) continue;
|
||||||
|
array->str[i + 1] = value;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
strarray_add( array, name );
|
||||||
|
strarray_add( array, value );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*******************************************************************
|
/*******************************************************************
|
||||||
* output_filename
|
* output_filename
|
||||||
*/
|
*/
|
||||||
|
@ -1226,19 +1262,11 @@ static struct incl_file *add_src_file( const char *name )
|
||||||
*/
|
*/
|
||||||
static char *get_make_variable( const char *name )
|
static char *get_make_variable( const char *name )
|
||||||
{
|
{
|
||||||
unsigned int i;
|
char *ret;
|
||||||
|
|
||||||
for (i = 0; i < cmdline_vars.count; i += 2)
|
if ((ret = strarray_get_value( &cmdline_vars, name ))) return ret;
|
||||||
if (!strcmp( cmdline_vars.str[i], name ))
|
if ((ret = strarray_get_value( &make_vars, name ))) return ret;
|
||||||
return xstrdup( cmdline_vars.str[i + 1] );
|
if ((ret = strarray_get_value( &top_make_vars, name ))) return ret;
|
||||||
|
|
||||||
for (i = 0; i < make_vars.count; i += 2)
|
|
||||||
if (!strcmp( make_vars.str[i], name ))
|
|
||||||
return xstrdup( make_vars.str[i + 1] );
|
|
||||||
|
|
||||||
for (i = 0; i < top_make_vars.count; i += 2)
|
|
||||||
if (!strcmp( top_make_vars.str[i], name ))
|
|
||||||
return xstrdup( top_make_vars.str[i + 1] );
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1312,7 +1340,6 @@ static struct strarray get_expanded_make_var_array( const char *name )
|
||||||
*/
|
*/
|
||||||
static int set_make_variable( struct strarray *array, const char *assignment )
|
static int set_make_variable( struct strarray *array, const char *assignment )
|
||||||
{
|
{
|
||||||
unsigned int i;
|
|
||||||
char *p, *name;
|
char *p, *name;
|
||||||
|
|
||||||
p = name = xstrdup( assignment );
|
p = name = xstrdup( assignment );
|
||||||
|
@ -1327,15 +1354,7 @@ static int set_make_variable( struct strarray *array, const char *assignment )
|
||||||
*p++ = 0;
|
*p++ = 0;
|
||||||
while (isspace(*p)) p++;
|
while (isspace(*p)) p++;
|
||||||
|
|
||||||
/* redefining a variable replaces the previous value */
|
strarray_set_value( array, name, p );
|
||||||
for (i = 0; i < array->count; i += 2)
|
|
||||||
{
|
|
||||||
if (strcmp( array->str[i], name )) continue;
|
|
||||||
array->str[i + 1] = p;
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
strarray_add( array, name );
|
|
||||||
strarray_add( array, p );
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue