|
@@ -12,15 +12,18 @@
|
|
struct file *file_lookup(const char *name)
|
|
struct file *file_lookup(const char *name)
|
|
{
|
|
{
|
|
struct file *file;
|
|
struct file *file;
|
|
|
|
+ const char *file_name = sym_expand_string_value(name);
|
|
|
|
|
|
for (file = file_list; file; file = file->next) {
|
|
for (file = file_list; file; file = file->next) {
|
|
- if (!strcmp(name, file->name))
|
|
|
|
|
|
+ if (!strcmp(name, file->name)) {
|
|
|
|
+ free((void *)file_name);
|
|
return file;
|
|
return file;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
file = malloc(sizeof(*file));
|
|
file = malloc(sizeof(*file));
|
|
memset(file, 0, sizeof(*file));
|
|
memset(file, 0, sizeof(*file));
|
|
- file->name = strdup(name);
|
|
|
|
|
|
+ file->name = file_name;
|
|
file->next = file_list;
|
|
file->next = file_list;
|
|
file_list = file;
|
|
file_list = file;
|
|
return file;
|
|
return file;
|