aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@airs.com>1996-03-22 16:14:07 +0000
committerIan Lance Taylor <ian@airs.com>1996-03-22 16:14:07 +0000
commit5ba7c0bee1a42f4b9ba600dad37adedb3569c079 (patch)
tree207716cc127c4c248236a8732bb3857bbbf6984c
parent51776a11a69e670c69a5f51c80d54c812b317425 (diff)
downloadgdb-5ba7c0bee1a42f4b9ba600dad37adedb3569c079.zip
gdb-5ba7c0bee1a42f4b9ba600dad37adedb3569c079.tar.gz
gdb-5ba7c0bee1a42f4b9ba600dad37adedb3569c079.tar.bz2
* gasp.c (change_base): Recognize \(...) construct documented to
pass through enclosed characters literally through to the output. (process_assigns): Likewise. Also, be more careful to avoid looking past the end of the buffer. PR 9268.
-rw-r--r--gas/ChangeLog12
-rw-r--r--gas/gasp.c29
2 files changed, 40 insertions, 1 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index cd82b7d..cbd3547 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,15 @@
+Fri Mar 22 11:13:00 1996 Ian Lance Taylor <ian@cygnus.com>
+
+ * gasp.c (change_base): Recognize \(...) construct documented to
+ pass through enclosed characters literally through to the output.
+ (process_assigns): Likewise. Also, be more careful to avoid
+ looking past the end of the buffer.
+
+Thu Mar 21 13:18:43 1996 Ian Lance Taylor <ian@cygnus.com>
+
+ * config/tc-i386.c (md_parse_option): If OBJ_ELF, ignore -k for
+ FreeBSD compatibility. From John Polstra <jdp@polstra.com>.
+
Wed Mar 20 18:13:32 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* doc/as.texinfo, doc/c-i960.texi: Fix typos.
diff --git a/gas/gasp.c b/gas/gasp.c
index f92d34f..673f440 100644
--- a/gas/gasp.c
+++ b/gas/gasp.c
@@ -1103,7 +1103,21 @@ change_base (idx, in, out)
while (idx < in->len)
{
- if (idx < in->len - 1 && in->ptr[idx + 1] == '\'' && ! mri)
+ if (in->ptr[idx] == '\\'
+ && idx + 1 < in->len
+ && in->ptr[idx + 1] == '(')
+ {
+ idx += 2;
+ while (idx < in->len
+ && in->ptr[idx] != ')')
+ {
+ sb_add_char (out, in->ptr[idx]);
+ idx++;
+ }
+ if (idx < in->len)
+ idx++;
+ }
+ else if (idx < in->len - 1 && in->ptr[idx + 1] == '\'' && ! mri)
{
int base;
int value;
@@ -1761,11 +1775,24 @@ process_assigns (idx, in, buf)
{
hash_entry *ptr;
if (in->ptr[idx] == '\\'
+ && idx + 1 < in->len
+ && in->ptr[idx + 1] == '(')
+ {
+ do
+ {
+ sb_add_char (buf, in->ptr[idx]);
+ idx++;
+ }
+ while (idx < in->len && in->ptr[idx - 1] != ')');
+ }
+ else if (in->ptr[idx] == '\\'
+ && idx + 1 < in->len
&& in->ptr[idx + 1] == '&')
{
idx = condass_lookup_name (in, idx + 2, buf, 1);
}
else if (in->ptr[idx] == '\\'
+ && idx + 1 < in->len
&& in->ptr[idx + 1] == '$')
{
idx = condass_lookup_name (in, idx + 2, buf, 0);