aboutsummaryrefslogtreecommitdiff
path: root/opcodes/cgen-asm.c
diff options
context:
space:
mode:
authorGeoffrey Keating <geoffk@geoffk.org>2001-06-14 20:38:42 +0000
committerGeoffrey Keating <geoffk@geoffk.org>2001-06-14 20:38:42 +0000
commit3e890047742a6c96a421700d536a260bcc12a8ec (patch)
tree6a73e43d1c2f06a4da203cf548b85dc95e212984 /opcodes/cgen-asm.c
parentdc8acb9740b89a3bd10511e53dbf24ad25e1c048 (diff)
downloadgdb-3e890047742a6c96a421700d536a260bcc12a8ec.zip
gdb-3e890047742a6c96a421700d536a260bcc12a8ec.tar.gz
gdb-3e890047742a6c96a421700d536a260bcc12a8ec.tar.bz2
Index: opcodes/ChangeLog
2001-06-13 Geoffrey Keating <geoffk@redhat.com> * cgen-asm.c (cgen_parse_keyword): When looking for the boundaries of a keyword, allow any special characters that are actually in one of the allowed keyword. * cgen-opc.c (cgen_keyword_add): Add any special characters to the nonalpha_chars field. Index: cgen/ChangeLog 2001-06-13 Geoffrey Keating <geoffk@redhat.com> * desc.scm (<keyword> 'gen-defn): Add extra zero into CGEN_KEYWORD_ENTRY initializers. Index: include/opcode/ChangeLog 2001-06-13 Geoffrey Keating <geoffk@redhat.com> * cgen.h (cgen_keyword): Add nonalpha_chars field.
Diffstat (limited to 'opcodes/cgen-asm.c')
-rw-r--r--opcodes/cgen-asm.c15
1 files changed, 7 insertions, 8 deletions
diff --git a/opcodes/cgen-asm.c b/opcodes/cgen-asm.c
index a8d6ff8..315b802 100644
--- a/opcodes/cgen-asm.c
+++ b/opcodes/cgen-asm.c
@@ -207,17 +207,16 @@ cgen_parse_keyword (cd, strp, keyword_table, valuep)
char buf[256];
const char *p,*start;
- p = start = *strp;
+ if (keyword_table->name_hash_table == NULL)
+ (void) cgen_keyword_search_init (keyword_table, NULL);
- /* Allow any first character.
- Note that this allows recognizing ",a" for the annul flag in sparc
- even though "," is subsequently not a valid keyword char. */
- if (*p)
- ++p;
+ p = start = *strp;
- /* Now allow letters, digits, and _. */
+ /* Allow letters, digits, and any special characters. */
while (((p - start) < (int) sizeof (buf))
- && (isalnum ((unsigned char) *p) || *p == '_'))
+ && *p
+ && (isalnum ((unsigned char) *p)
+ || strchr (keyword_table->nonalpha_chars, *p)))
++p;
if (p - start >= (int) sizeof (buf))