From c1d2378e970d447f80b389a182b4db0c71fba424 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 12 Jan 2007 10:57:02 +0000 Subject: PR gas/3856 * macro.c (expand_irp): Do not ignore spaces inside quoted strings. --- gas/macro.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'gas/macro.c') diff --git a/gas/macro.c b/gas/macro.c index 67846eb2da..d7d470b764 100644 --- a/gas/macro.c +++ b/gas/macro.c @@ -1325,8 +1325,14 @@ expand_irp (int irpc, int idx, sb *in, sb *out, int (*get_line) (sb *)) } else { + bfd_boolean in_quotes = FALSE; + if (irpc && in->ptr[idx] == '"') - ++idx; + { + in_quotes = TRUE; + ++idx; + } + while (idx < in->len) { if (!irpc) @@ -1337,6 +1343,9 @@ expand_irp (int irpc, int idx, sb *in, sb *out, int (*get_line) (sb *)) { int nxt; + if (irpc) + in_quotes = ! in_quotes; + nxt = sb_skip_white (idx + 1, in); if (nxt >= in->len) { @@ -1348,12 +1357,13 @@ expand_irp (int irpc, int idx, sb *in, sb *out, int (*get_line) (sb *)) sb_add_char (&f.actual, in->ptr[idx]); ++idx; } + err = macro_expand_body (&sub, out, &f, h, 0); if (err != NULL) break; if (!irpc) idx = sb_skip_comma (idx, in); - else + else if (! in_quotes) idx = sb_skip_white (idx, in); } } -- cgit v1.2.1