diff options
author | Geoffrey Keating <geoffk@geoffk.org> | 2001-06-14 20:38:42 +0000 |
---|---|---|
committer | Geoffrey Keating <geoffk@geoffk.org> | 2001-06-14 20:38:42 +0000 |
commit | 3e890047742a6c96a421700d536a260bcc12a8ec (patch) | |
tree | 6a73e43d1c2f06a4da203cf548b85dc95e212984 /opcodes/cgen-asm.c | |
parent | dc8acb9740b89a3bd10511e53dbf24ad25e1c048 (diff) | |
download | gdb-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.c | 15 |
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)) |