]> Git Repo - qemu.git/blobdiff - scripts/qapi/common.py
qapi: Permit flat union members for any tag value
[qemu.git] / scripts / qapi / common.py
index 11b86beeabe6337ef2e35e78d1a1ac7363175651..cbd3fd81d36408d9786ff729f50b7966654f9580 100644 (file)
@@ -18,7 +18,6 @@ from typing import Optional, Sequence
 #: Magic string that gets removed along with all space to its right.
 EATSPACE = '\033EATSPACE.'
 POINTER_SUFFIX = ' *' + EATSPACE
-_C_NAME_TRANS = str.maketrans('.-', '__')
 
 
 def camel_to_upper(value: str) -> str:
@@ -109,9 +108,10 @@ def c_name(name: str, protect: bool = True) -> str:
                      'not_eq', 'or', 'or_eq', 'xor', 'xor_eq'])
     # namespace pollution:
     polluted_words = set(['unix', 'errno', 'mips', 'sparc', 'i386'])
-    name = name.translate(_C_NAME_TRANS)
-    if protect and (name in c89_words | c99_words | c11_words | gcc_words
-                    | cpp_words | polluted_words):
+    name = re.sub(r'[^A-Za-z0-9_]', '_', name)
+    if protect and (name in (c89_words | c99_words | c11_words | gcc_words
+                             | cpp_words | polluted_words)
+                    or name[0].isdigit()):
         return 'q_' + name
     return name
 
This page took 0.023498 seconds and 4 git commands to generate.