output: use mapped file name for symbols

Applies the file name mapping before exporting it as a symbol. This
allows the symbols to correctly respect the --file-prefix-map command
line option.

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
This commit is contained in:
Joshua Watt
2021-02-16 08:00:28 -06:00
committed by Akim Demaille
parent 4511e43245
commit b96528b48c
2 changed files with 9 additions and 3 deletions

View File

@@ -204,8 +204,10 @@ static void
muscle_syncline_grow (char const *key, location loc)
{
obstack_printf (&muscle_obstack, "]b4_syncline(%d, ", loc.start.line);
char *f = map_file_name (loc.start.file);
obstack_quote (&muscle_obstack,
quotearg_style (c_quoting_style, loc.start.file));
quotearg_style (c_quoting_style, f));
free (f);
obstack_sgrow (&muscle_obstack, ")dnl\n[");
char const *extension = obstack_finish0 (&muscle_obstack);
muscle_grow (key, extension, "", "");

View File

@@ -531,7 +531,9 @@ user_actions_output (FILE *out)
{
fprintf (out, "b4_syncline(%d, ",
rules[r].action_loc.start.line);
string_output (out, rules[r].action_loc.start.file);
char *f = map_file_name (rules[r].action_loc.start.file);
string_output (out, f);
free(f);
fprintf (out, ")dnl\n");
}
fprintf (out, "[%*s%s]],\n[[",
@@ -629,8 +631,10 @@ prepare_symbol_definitions (void)
if (p->code)
{
char *f = map_file_name (p->location.start.file);
SET_KEY2 (pname, "file");
MUSCLE_INSERT_C_STRING (key, p->location.start.file);
MUSCLE_INSERT_C_STRING (key, f);
free (f);
SET_KEY2 (pname, "line");
MUSCLE_INSERT_INT (key, p->location.start.line);