30 lines
945 B
Python
30 lines
945 B
Python
def concatenate_cmdline_variables(src, names):
|
|
"""Find duplicate variable declarations on the given source list, and
|
|
concatenate the values of those in the 'names' list."""
|
|
|
|
# the result list being constructed
|
|
dest = []
|
|
|
|
# a map of variable name to destination list index
|
|
positions = {}
|
|
|
|
for item in src:
|
|
i = item.find('=')
|
|
if i > 0:
|
|
# it's a variable
|
|
name = item[:i]
|
|
if name in names:
|
|
# it's a known variable
|
|
if name in positions:
|
|
# already specified: concatenate instead of
|
|
# appending it
|
|
dest[positions[name]] += ' ' + item[i + 1:]
|
|
continue
|
|
else:
|
|
# not yet seen: append it and remember the list
|
|
# index
|
|
positions[name] = len(dest)
|
|
dest.append(item)
|
|
|
|
return dest
|