aboutsummaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorMarkus Armbruster <armbru@redhat.com>2015-07-31 11:33:52 +0200
committerMarkus Armbruster <armbru@redhat.com>2015-09-04 15:47:14 +0200
commitd90675fa4bc256238b3dd3a7fdd5f9029eca00b8 (patch)
tree196a1cc4824971119d50ed96953e377de5285d46 /scripts
parentca56a822dd538017715345cbbe1f8829e0cc2742 (diff)
downloadqemu-d90675fa4bc256238b3dd3a7fdd5f9029eca00b8.zip
qemu-d90675fa4bc256238b3dd3a7fdd5f9029eca00b8.tar.gz
qemu-d90675fa4bc256238b3dd3a7fdd5f9029eca00b8.tar.bz2
qapi: Document flaws in checking of names
We don't actually enforce our "other than downstream extensions [...], all names should begin with a letter" rule. Add a FIXME. We should reject names that differ only in '_' vs. '.' vs. '-', because they're liable to clash in generated C. Add a FIXME. Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com>
Diffstat (limited to 'scripts')
-rw-r--r--scripts/qapi.py4
1 files changed, 4 insertions, 0 deletions
diff --git a/scripts/qapi.py b/scripts/qapi.py
index e7c814d..4879982 100644
--- a/scripts/qapi.py
+++ b/scripts/qapi.py
@@ -341,6 +341,8 @@ def discriminator_find_enum_define(expr):
return find_enum(discriminator_type)
+# FIXME should enforce "other than downstream extensions [...], all
+# names should begin with a letter".
valid_name = re.compile('^[a-zA-Z_][a-zA-Z0-9_.-]*$')
def check_name(expr_info, source, name, allow_optional = False,
enum_member = False):
@@ -367,6 +369,8 @@ def check_name(expr_info, source, name, allow_optional = False,
def add_name(name, info, meta, implicit = False):
global all_names
check_name(info, "'%s'" % meta, name)
+ # FIXME should reject names that differ only in '_' vs. '.'
+ # vs. '-', because they're liable to clash in generated C.
if name in all_names:
raise QAPIExprError(info,
"%s '%s' is already defined"