+2005-08-09 Nick Clifton <nickc@redhat.com>
+
+ PR 1070
+ * macro.c (getstring): Do not treat round parentheses exactly the
+ same as angle brackets - the parentheses need to be preserved and
+ passed on to the macro processing code.
+
2005-08-08 Nick Clifton <nickc@redhat.com>
* config/tc-msp430.c (MSP430_ISA_21): Define.
|| (in->ptr[idx] == '<' && (macro_alternate || macro_mri))
|| (in->ptr[idx] == '\'' && macro_alternate)))
{
- if (in->ptr[idx] == '<'
- || in->ptr[idx] == '(')
+ if (in->ptr[idx] == '<')
{
int nest = 0;
- char start_char = in->ptr[idx];
- char end_char = in->ptr[idx] == '<' ? '>' : ')';
+ char start_char = '>';
+ char end_char = '>';
idx++;
while ((in->ptr[idx] != end_char || nest)
}
idx++;
}
+ else if (in->ptr[idx] == '(')
+ {
+ int nest = 0;
+ char c;
+
+ do
+ {
+ c = in->ptr[idx];
+
+ if (c == '!')
+ c = in->ptr[++idx];
+ else if (c == ')')
+ nest--;
+ else if (c == '(')
+ nest++;
+
+ sb_add_char (acc, c);
+ idx++;
+ }
+ while ((c != ')' || nest)
+ && idx < in->len);
+ }
else if (in->ptr[idx] == '"' || in->ptr[idx] == '\'')
{
char tchar = in->ptr[idx];
'Bxyx<whitespace> -> return 'Bxyza
%<expr> -> return string of decimal value of <expr>
"string" -> return string
- (string) -> return string
+ (string) -> return (string-including-whitespaces)
xyx<whitespace> -> return xyz. */
static int