muscle_syncline_grow (char const *key, location loc)
{
char *extension = NULL;
- obstack_fgrow1 (&muscle_obstack, "]b4_syncline(%d, [[", loc.start.line);
- obstack_escape (&muscle_obstack,
- quotearg_style (c_quoting_style, loc.start.file));
- obstack_sgrow (&muscle_obstack, "]])[");
+ obstack_printf (&muscle_obstack, "]b4_syncline(%d, ", loc.start.line);
+ obstack_quote (&muscle_obstack,
+ quotearg_style (c_quoting_style, loc.start.file));
+ obstack_sgrow (&muscle_obstack, ")[");
obstack_1grow (&muscle_obstack, 0);
extension = obstack_finish (&muscle_obstack);
muscle_grow (key, extension, "");
const char *a1, const char *a2)
{
char *pair;
- obstack_sgrow (&muscle_obstack, "[[[");
- obstack_escape (&muscle_obstack, a1);
- obstack_sgrow (&muscle_obstack, "]], [[");
- obstack_escape (&muscle_obstack, a2);
- obstack_sgrow (&muscle_obstack, "]]]");
+ obstack_sgrow (&muscle_obstack, "[");
+ obstack_quote (&muscle_obstack, a1);
+ obstack_sgrow (&muscle_obstack, ", ");
+ obstack_quote (&muscle_obstack, a2);
+ obstack_sgrow (&muscle_obstack, "]");
obstack_1grow (&muscle_obstack, 0);
pair = obstack_finish (&muscle_obstack);
muscle_grow (muscle, pair, ",\n");
}
-void
+/* In the format `file_name:line.column', append BOUND to MUSCLE. Use
+ digraphs for special characters in the file name. */
+
+static void
muscle_boundary_grow (char const *key, boundary bound)
{
char *extension;
+ obstack_sgrow (&muscle_obstack, "[[");
obstack_escape (&muscle_obstack, bound.file);
- obstack_1grow (&muscle_obstack, ':');
- obstack_fgrow1 (&muscle_obstack, "%d", bound.line);
- obstack_1grow (&muscle_obstack, '.');
- obstack_fgrow1 (&muscle_obstack, "%d", bound.column);
- obstack_1grow (&muscle_obstack, '\0');
+ obstack_1grow (&muscle_obstack, ':');
+ obstack_printf (&muscle_obstack, "%d", bound.line);
+ obstack_1grow (&muscle_obstack, '.');
+ obstack_printf (&muscle_obstack, "%d", bound.column);
+ obstack_sgrow (&muscle_obstack, "]]");
+ obstack_1grow (&muscle_obstack, '\0');
extension = obstack_finish (&muscle_obstack);
muscle_grow (key, extension, "");
obstack_free (&muscle_obstack, extension);
}
-void
+
+/* In the format `[[file_name:line.column]], [[file_name:line.column]]',
+ append LOC to MUSCLE. Use digraphs for special characters in each
+ file name. */
+
+static void
muscle_location_grow (char const *key, location loc)
{
- muscle_grow (key, "[[", "");
muscle_boundary_grow (key, loc.start);
- muscle_grow (key, "]], [[", "");
+ muscle_grow (key, "", ", ");
muscle_boundary_grow (key, loc.end);
- muscle_grow (key, "]]", "");
}
#define COMMON_DECODE(Value) \