return rp->sym->type_name;
}
\f
+/*------------------------------------------------------------------.
+| Copy the character C to OOUT, and insert quadigraphs when needed. |
+`------------------------------------------------------------------*/
+
+static inline void
+copy_character (struct obstack *oout, int c)
+{
+ switch (c)
+ {
+ case '[':
+ obstack_sgrow (oout, "@<:@");
+ break;
+
+ case ']':
+ obstack_sgrow (oout, "@:>@");
+ break;
+
+ default:
+ obstack_1grow (oout, c);
+ }
+}
+
/*------------------------------------------------------------.
| Dump the string from FIN to OOUT if non null. MATCH is the |
| delimiter of the string (either ' or "). |
continue;
}
- obstack_1grow (oout, c);
+ copy_character (oout, c);
if (c == '\\')
{
c = getc (fin);
if (c == EOF)
fatal (_("unterminated string at end of file"));
- obstack_1grow (oout, c);
+ copy_character (oout, c);
if (c == '\n')
++lineno;
fatal (_("unterminated comment"));
else
{
- obstack_1grow (oout, c);
+ copy_character (oout, c);
c = getc (fin);
}
}
fatal ("%s", _("unterminated `%{' definition"));
default:
- obstack_1grow (oout, c);
+ copy_character (oout, c);
}
c = getc (finput);
}
while ((c = getc (finput)) != EOF)
- obstack_1grow (&el_obstack, c);
+ copy_character (&el_obstack, c);
obstack_1grow (&el_obstack, 0);
muscle_insert ("epilogue", obstack_finish (&el_obstack));