- if (strncmp (filename, map->old_prefix, map->old_len) == 0)
- break;
- if (!map)
- return filename;
- name = filename + map->old_len;
- name_len = strlen (name) + 1;
- s = (char *) alloca (name_len + map->new_len);
- memcpy (s, map->new_prefix, map->new_len);
- memcpy (s + map->new_len, name, name_len);
- return xstrdup (s);
+ if (filename_ncmp (filename, map->old_prefix, map->old_len) == 0)
+ {
+ const char *name = filename + map->old_len;
+ return concat (map->new_prefix, name, NULL);
+ }
+
+ return xstrdup (filename);