diff --git a/src/barebox-state.c b/src/barebox-state.c index bc1010e..b7b6c03 100644 --- a/src/barebox-state.c +++ b/src/barebox-state.c @@ -2129,17 +2129,22 @@ int main(int argc, char *argv[]) if (do_dump_shell) { state_for_each_var(state, v) { struct variable_type *vtype; - char *name, *ptr; + char *statename, *name, *ptr; int i; - /* replace "." by "_" to make it var name shell compatible */ + /* replace "." by "_" to make the var name shell compatible */ name = strdup(v->name); ptr = name; while ((ptr = strchr(ptr, '.'))) *ptr++ = '_'; + /* replace "@" by "_" to make the state name shell compatible */ + statename = strdup(state->name); + ptr = statename; + while ((ptr = strchr(ptr, '@'))) + *ptr++ = '_'; vtype = state_find_type(v->type); - printf("%s_%s=\"%s\"\n", state->name, name, vtype->__get(v)); + printf("%s_%s=\"%s\"\n", statename, name, vtype->__get(v)); } }