From: Markus Armbruster <armbru@redhat.com>
To: qemu-devel@nongnu.org
Cc: marcandre.lureau@redhat.com, eblake@redhat.com,
mdroth@linux.vnet.ibm.com
Subject: [Qemu-devel] [PATCH v2 for-2.9 19/47] qapi: Prefer single-quoted strings more consistently
Date: Wed, 15 Mar 2017 13:57:08 +0100 [thread overview]
Message-ID: <1489582656-31133-20-git-send-email-armbru@redhat.com> (raw)
In-Reply-To: <1489582656-31133-1-git-send-email-armbru@redhat.com>
PEP 8 advises:
In Python, single-quoted strings and double-quoted strings are the
same. This PEP does not make a recommendation for this. Pick a
rule and stick to it. When a string contains single or double
quote characters, however, use the other one to avoid backslashes
in the string. It improves readability.
The QAPI generators succeed at picking a rule, but fail at sticking to
it. Convert a bunch of double-quoted strings to single-quoted ones.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
---
scripts/qapi-event.py | 2 +-
scripts/qapi-introspect.py | 4 +-
scripts/qapi-types.py | 4 +-
scripts/qapi-visit.py | 4 +-
scripts/qapi.py | 96 +++++++++++++++++++++++-----------------------
scripts/qapi2texi.py | 46 +++++++++++-----------
6 files changed, 78 insertions(+), 78 deletions(-)
diff --git a/scripts/qapi-event.py b/scripts/qapi-event.py
index f4eb7f8..0485e39 100644
--- a/scripts/qapi-event.py
+++ b/scripts/qapi-event.py
@@ -223,7 +223,7 @@ fdecl.write(mcgen('''
''',
prefix=prefix))
-event_enum_name = c_name(prefix + "QAPIEvent", protect=False)
+event_enum_name = c_name(prefix + 'QAPIEvent', protect=False)
schema = QAPISchema(input_file)
gen = QAPISchemaGenEventVisitor()
diff --git a/scripts/qapi-introspect.py b/scripts/qapi-introspect.py
index fb72c61..032bcea 100644
--- a/scripts/qapi-introspect.py
+++ b/scripts/qapi-introspect.py
@@ -170,10 +170,10 @@ const char %(c_name)s[] = %(c_string)s;
opt_unmask = False
(input_file, output_dir, do_c, do_h, prefix, opts) = \
- parse_command_line("u", ["unmask-non-abi-names"])
+ parse_command_line('u', ['unmask-non-abi-names'])
for o, a in opts:
- if o in ("-u", "--unmask-non-abi-names"):
+ if o in ('-u', '--unmask-non-abi-names'):
opt_unmask = True
c_comment = '''
diff --git a/scripts/qapi-types.py b/scripts/qapi-types.py
index dabc42e..b45e7b5 100644
--- a/scripts/qapi-types.py
+++ b/scripts/qapi-types.py
@@ -244,10 +244,10 @@ class QAPISchemaGenTypeVisitor(QAPISchemaVisitor):
do_builtins = False
(input_file, output_dir, do_c, do_h, prefix, opts) = \
- parse_command_line("b", ["builtins"])
+ parse_command_line('b', ['builtins'])
for o, a in opts:
- if o in ("-b", "--builtins"):
+ if o in ('-b', '--builtins'):
do_builtins = True
c_comment = '''
diff --git a/scripts/qapi-visit.py b/scripts/qapi-visit.py
index 330b9f3..3d3936e 100644
--- a/scripts/qapi-visit.py
+++ b/scripts/qapi-visit.py
@@ -335,10 +335,10 @@ class QAPISchemaGenVisitVisitor(QAPISchemaVisitor):
do_builtins = False
(input_file, output_dir, do_c, do_h, prefix, opts) = \
- parse_command_line("b", ["builtins"])
+ parse_command_line('b', ['builtins'])
for o, a in opts:
- if o in ("-b", "--builtins"):
+ if o in ('-b', '--builtins'):
do_builtins = True
c_comment = '''
diff --git a/scripts/qapi.py b/scripts/qapi.py
index 8088f60..8b7377e 100644
--- a/scripts/qapi.py
+++ b/scripts/qapi.py
@@ -58,9 +58,9 @@ all_names = {}
def error_path(parent):
- res = ""
+ res = ''
while parent:
- res = ("In file included from %s:%d:\n" % (parent['file'],
+ res = ('In file included from %s:%d:\n' % (parent['file'],
parent['line'])) + res
parent = parent['parent']
return res
@@ -76,10 +76,10 @@ class QAPIError(Exception):
self.msg = msg
def __str__(self):
- loc = "%s:%d" % (self.fname, self.line)
+ loc = '%s:%d' % (self.fname, self.line)
if self.col is not None:
- loc += ":%s" % self.col
- return error_path(self.info) + "%s: %s" % (loc, self.msg)
+ loc += ':%s' % self.col
+ return error_path(self.info) + '%s: %s' % (loc, self.msg)
class QAPIParseError(QAPIError):
@@ -113,7 +113,7 @@ class QAPIDoc(object):
self.content.append(line)
def __repr__(self):
- return "\n".join(self.content).strip()
+ return '\n'.join(self.content).strip()
class ArgSection(Section):
def __init__(self, name):
@@ -163,8 +163,8 @@ class QAPIDoc(object):
# recognized, and get silently treated as ordinary text
if self.symbol:
self._append_symbol_line(line)
- elif not self.body.content and line.startswith("@"):
- if not line.endswith(":"):
+ elif not self.body.content and line.startswith('@'):
+ if not line.endswith(':'):
raise QAPIParseError(self.parser, "Line should end with :")
self.symbol = line[1:-1]
# FIXME invalid names other than the empty string aren't flagged
@@ -176,14 +176,14 @@ class QAPIDoc(object):
def _append_symbol_line(self, line):
name = line.split(' ', 1)[0]
- if name.startswith("@") and name.endswith(":"):
+ if name.startswith('@') and name.endswith(':'):
line = line[len(name)+1:]
self._start_args_section(name[1:-1])
- elif name in ("Returns:", "Since:",
+ elif name in ('Returns:', 'Since:',
# those are often singular or plural
- "Note:", "Notes:",
- "Example:", "Examples:",
- "TODO:"):
+ 'Note:', 'Notes:',
+ 'Example:', 'Examples:',
+ 'TODO:'):
line = line[len(name)+1:]
self._start_section(name[:-1])
@@ -203,8 +203,8 @@ class QAPIDoc(object):
self.section = QAPIDoc.ArgSection(name)
self.args[name] = self.section
- def _start_section(self, name=""):
- if name in ("Returns", "Since") and self.has_section(name):
+ def _start_section(self, name=''):
+ if name in ('Returns', 'Since') and self.has_section(name):
raise QAPIParseError(self.parser,
"Duplicated '%s' section" % name)
self.section = QAPIDoc.Section(name)
@@ -217,7 +217,7 @@ class QAPIDoc(object):
and line and not line[0].isspace()):
self._start_section()
if (in_arg or not self.section.name
- or not self.section.name.startswith("Example")):
+ or not self.section.name.startswith('Example')):
line = line.strip()
# TODO Drop this once the dust has settled
if (isinstance(self.section, QAPIDoc.ArgSection)
@@ -262,7 +262,7 @@ class QAPISchemaParser(object):
if 'include' in expr:
if len(expr) != 1:
raise QAPISemError(info, "Invalid 'include' directive")
- include = expr["include"]
+ include = expr['include']
if not isinstance(include, str):
raise QAPISemError(info,
"Value of 'include' must be a string")
@@ -347,7 +347,7 @@ class QAPISchemaParser(object):
if not skip_comment:
self.val = self.src[self.pos:self.cursor]
return
- elif self.tok in "{}:,[]":
+ elif self.tok in '{}:,[]':
return
elif self.tok == "'":
string = ''
@@ -373,7 +373,7 @@ class QAPISchemaParser(object):
for _ in range(0, 4):
ch = self.src[self.cursor]
self.cursor += 1
- if ch not in "0123456789abcdefABCDEF":
+ if ch not in '0123456789abcdefABCDEF':
raise QAPIParseError(self,
'\\u escape needs 4 '
'hex digits')
@@ -388,28 +388,28 @@ class QAPISchemaParser(object):
'only supports non-zero '
'values up to \\u007f')
string += chr(value)
- elif ch in "\\/'\"":
+ elif ch in '\\/\'"':
string += ch
else:
raise QAPIParseError(self,
"Unknown escape \\%s" % ch)
esc = False
- elif ch == "\\":
+ elif ch == '\\':
esc = True
elif ch == "'":
self.val = string
return
else:
string += ch
- elif self.src.startswith("true", self.pos):
+ elif self.src.startswith('true', self.pos):
self.val = True
self.cursor += 3
return
- elif self.src.startswith("false", self.pos):
+ elif self.src.startswith('false', self.pos):
self.val = False
self.cursor += 4
return
- elif self.src.startswith("null", self.pos):
+ elif self.src.startswith('null', self.pos):
self.val = None
self.cursor += 3
return
@@ -523,11 +523,11 @@ def find_alternate_member_qtype(qapi_type):
if qapi_type in builtin_types:
return builtin_types[qapi_type]
elif find_struct(qapi_type):
- return "QTYPE_QDICT"
+ return 'QTYPE_QDICT'
elif find_enum(qapi_type):
- return "QTYPE_QSTRING"
+ return 'QTYPE_QSTRING'
elif find_union(qapi_type):
- return "QTYPE_QDICT"
+ return 'QTYPE_QDICT'
return None
@@ -628,7 +628,7 @@ def find_union(name):
def add_enum(name, info, enum_values=None, implicit=False):
global enum_types
add_name(name, info, 'enum', implicit)
- enum_types.append({"enum_name": name, "enum_values": enum_values})
+ enum_types.append({'enum_name': name, 'enum_values': enum_values})
def find_enum(name):
@@ -788,7 +788,7 @@ def check_union(expr, info):
raise QAPISemError(info,
"Discriminator value '%s' is not found in "
"enum '%s'"
- % (key, enum_define["enum_name"]))
+ % (key, enum_define['enum_name']))
# If discriminator is user-defined, ensure all values are covered
if enum_define:
@@ -993,7 +993,7 @@ def check_definition_doc(doc, expr, info):
args = set([name.strip('*') for name in args])
if not doc_args.issubset(args):
raise QAPISemError(info, "The following documented members are not in "
- "the declaration: %s" % ", ".join(doc_args - args))
+ "the declaration: %s" % ', '.join(doc_args - args))
def check_docs(docs):
@@ -1487,7 +1487,7 @@ class QAPISchemaEvent(QAPISchemaEntity):
class QAPISchema(object):
def __init__(self, fname):
try:
- parser = QAPISchemaParser(open(fname, "r"))
+ parser = QAPISchemaParser(open(fname, 'r'))
self.exprs = check_exprs(parser.exprs)
self.docs = check_docs(parser.docs)
self._entity_dict = {}
@@ -1740,8 +1740,8 @@ def camel_to_upper(value):
l = len(c_fun_str)
for i in range(l):
c = c_fun_str[i]
- # When c is upper and no "_" appears before, do more checks
- if c.isupper() and (i > 0) and c_fun_str[i - 1] != "_":
+ # When c is upper and no '_' appears before, do more checks
+ if c.isupper() and (i > 0) and c_fun_str[i - 1] != '_':
if i < l - 1 and c_fun_str[i + 1].islower():
new_name += '_'
elif c_fun_str[i - 1].isdigit():
@@ -1760,7 +1760,7 @@ c_name_trans = string.maketrans('.-', '__')
# Map @name to a valid C identifier.
# If @protect, avoid returning certain ticklish identifiers (like
-# C keywords) by prepending "q_".
+# C keywords) by prepending 'q_'.
#
# Used for converting 'name' from a 'name':'type' qapi definition
# into a generated struct member, as well as converting type names
@@ -1798,7 +1798,7 @@ def c_name(name, protect=True):
name = name.translate(c_name_trans)
if protect and (name in c89_words | c99_words | c11_words | gcc_words
| cpp_words | polluted_words):
- return "q_" + name
+ return 'q_' + name
return name
eatspace = '\033EATSPACE.'
@@ -1806,9 +1806,9 @@ pointer_suffix = ' *' + eatspace
def genindent(count):
- ret = ""
+ ret = ''
for _ in range(count):
- ret += " "
+ ret += ' '
return ret
indent_level = 0
@@ -1948,26 +1948,26 @@ def gen_params(arg_type, boxed, extra):
#
-def parse_command_line(extra_options="", extra_long_options=[]):
+def parse_command_line(extra_options='', extra_long_options=[]):
try:
opts, args = getopt.gnu_getopt(sys.argv[1:],
- "chp:o:" + extra_options,
- ["source", "header", "prefix=",
- "output-dir="] + extra_long_options)
+ 'chp:o:' + extra_options,
+ ['source', 'header', 'prefix=',
+ 'output-dir='] + extra_long_options)
except getopt.GetoptError as err:
print >>sys.stderr, "%s: %s" % (sys.argv[0], str(err))
sys.exit(1)
- output_dir = ""
- prefix = ""
+ output_dir = ''
+ prefix = ''
do_c = False
do_h = False
extra_opts = []
for oa in opts:
o, a = oa
- if o in ("-p", "--prefix"):
+ if o in ('-p', '--prefix'):
match = re.match(r'([A-Za-z_.-][A-Za-z0-9_.-]*)?', a)
if match.end() != len(a):
print >>sys.stderr, \
@@ -1975,11 +1975,11 @@ def parse_command_line(extra_options="", extra_long_options=[]):
% (sys.argv[0], a[match.end()])
sys.exit(1)
prefix = a
- elif o in ("-o", "--output-dir"):
- output_dir = a + "/"
- elif o in ("-c", "--source"):
+ elif o in ('-o', '--output-dir'):
+ output_dir = a + '/'
+ elif o in ('-c', '--source'):
do_c = True
- elif o in ("-h", "--header"):
+ elif o in ('-h', '--header'):
do_h = True
else:
extra_opts.append(oa)
diff --git a/scripts/qapi2texi.py b/scripts/qapi2texi.py
index 4583477..91cd593 100755
--- a/scripts/qapi2texi.py
+++ b/scripts/qapi2texi.py
@@ -50,7 +50,7 @@ def subst_vars(doc):
def subst_braces(doc):
"""Replaces {} with @{ @}"""
- return doc.replace("{", "@{").replace("}", "@}")
+ return doc.replace('{', '@{').replace('}', '@}')
def texi_example(doc):
@@ -79,10 +79,10 @@ def texi_format(doc):
doc = subst_vars(doc)
doc = subst_emph(doc)
doc = subst_strong(doc)
- inlist = ""
+ inlist = ''
lastempty = False
for line in doc.split('\n'):
- empty = line == ""
+ empty = line == ''
# FIXME: Doing this in a single if / elif chain is
# problematic. For instance, a line without markup terminates
@@ -92,35 +92,35 @@ def texi_format(doc):
#
# Make sure to update section "Documentation markup" in
# docs/qapi-code-gen.txt when fixing this.
- if line.startswith("| "):
+ if line.startswith('| '):
line = EXAMPLE_FMT(code=line[2:])
- elif line.startswith("= "):
- line = "@section " + line[2:]
- elif line.startswith("== "):
- line = "@subsection " + line[3:]
+ elif line.startswith('= '):
+ line = '@section ' + line[2:]
+ elif line.startswith('== '):
+ line = '@subsection ' + line[3:]
elif re.match(r'^([0-9]*\.) ', line):
if not inlist:
- lines.append("@enumerate")
- inlist = "enumerate"
- line = line[line.find(" ")+1:]
- lines.append("@item")
+ lines.append('@enumerate')
+ inlist = 'enumerate'
+ line = line[line.find(' ')+1:]
+ lines.append('@item')
elif re.match(r'^[*-] ', line):
if not inlist:
- lines.append("@itemize %s" % {'*': "@bullet",
- '-': "@minus"}[line[0]])
- inlist = "itemize"
- lines.append("@item")
+ lines.append('@itemize %s' % {'*': '@bullet',
+ '-': '@minus'}[line[0]])
+ inlist = 'itemize'
+ lines.append('@item')
line = line[2:]
elif lastempty and inlist:
- lines.append("@end %s\n" % inlist)
- inlist = ""
+ lines.append('@end %s\n' % inlist)
+ inlist = ''
lastempty = empty
lines.append(line)
if inlist:
- lines.append("@end %s\n" % inlist)
- return "\n".join(lines)
+ lines.append('@end %s\n' % inlist)
+ return '\n'.join(lines)
def texi_body(doc):
@@ -158,12 +158,12 @@ def texi_sections(doc):
for section in doc.sections:
name, doc = (section.name, str(section))
func = texi_format
- if name.startswith("Example"):
+ if name.startswith('Example'):
func = texi_example
if name:
# prefer @b over @strong, so txt doesn't translate it to *Foo:*
- body += "\n\n@b{%s:}\n" % name
+ body += '\n\n@b{%s:}\n' % name
body += func(doc)
return body
@@ -269,5 +269,5 @@ def main(argv):
print texi_schema(schema)
-if __name__ == "__main__":
+if __name__ == '__main__':
main(sys.argv)
--
2.7.4
next prev parent reply other threads:[~2017-03-15 12:57 UTC|newest]
Thread overview: 55+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-03-15 12:56 [Qemu-devel] [PATCH v2 for-2.9 00/47] qapi: Put type information back into QMP documentation Markus Armbruster
2017-03-15 12:56 ` [Qemu-devel] [PATCH v2 for-2.9 01/47] qapi: Factor QAPISchemaParser._include() out of .__init__() Markus Armbruster
2017-03-15 12:56 ` [Qemu-devel] [PATCH v2 for-2.9 02/47] qapi: Make doc comments optional where we don't need them Markus Armbruster
2017-03-15 14:25 ` Eric Blake
2017-03-15 15:13 ` Markus Armbruster
2017-03-15 15:19 ` Eric Blake
2017-03-15 12:56 ` [Qemu-devel] [PATCH v2 for-2.9 03/47] qapi: Back out doc comments added just to please qapi.py Markus Armbruster
2017-03-15 12:56 ` [Qemu-devel] [PATCH v2 for-2.9 04/47] docs/qapi-code-gen.txt: Drop confusing reference to 'gen' Markus Armbruster
2017-03-15 12:56 ` [Qemu-devel] [PATCH v2 for-2.9 05/47] qapi: Have each QAPI schema declare its returns white-list Markus Armbruster
2017-03-15 14:33 ` Eric Blake
2017-03-15 12:56 ` [Qemu-devel] [PATCH v2 for-2.9 06/47] qapi: Have each QAPI schema declare its name rule violations Markus Armbruster
2017-03-15 14:53 ` Eric Blake
2017-03-15 12:56 ` [Qemu-devel] [PATCH v2 for-2.9 07/47] qapi: Clean up build of generated documentation Markus Armbruster
2017-03-15 12:56 ` [Qemu-devel] [PATCH v2 for-2.9 08/47] tests/qapi-schema: Cover empty union base Markus Armbruster
2017-03-15 12:56 ` [Qemu-devel] [PATCH v2 for-2.9 09/47] qapi: Fix to reject empty union base gracefully Markus Armbruster
2017-03-15 12:56 ` [Qemu-devel] [PATCH v2 for-2.9 10/47] qapi2texi: Fix up output around #optional Markus Armbruster
2017-03-15 12:57 ` [Qemu-devel] [PATCH v2 for-2.9 11/47] qapi: Avoid unwanted blank lines in QAPIDoc Markus Armbruster
2017-03-15 12:57 ` [Qemu-devel] [PATCH v2 for-2.9 12/47] qapi/rocker: Fix up doc comment notes on optional members Markus Armbruster
2017-03-15 12:57 ` [Qemu-devel] [PATCH v2 for-2.9 13/47] qapi: Fix QAPISchemaEnumType.is_implicit() for 'QType' Markus Armbruster
2017-03-15 12:57 ` [Qemu-devel] [PATCH v2 for-2.9 14/47] qapi: Prepare for requiring more complete documentation Markus Armbruster
2017-03-15 12:57 ` [Qemu-devel] [PATCH v2 for-2.9 15/47] qapi: Conjure up QAPIDoc.ArgSection for undocumented members Markus Armbruster
2017-03-15 12:57 ` [Qemu-devel] [PATCH v2 for-2.9 16/47] qapi2texi: Convert to QAPISchemaVisitor Markus Armbruster
2017-03-15 12:57 ` [Qemu-devel] [PATCH v2 for-2.9 17/47] qapi: The #optional tag is redundant, drop Markus Armbruster
2017-03-15 12:57 ` [Qemu-devel] [PATCH v2 for-2.9 18/47] qapi: Use raw strings for regular expressions consistently Markus Armbruster
2017-03-15 12:57 ` Markus Armbruster [this message]
2017-03-15 12:57 ` [Qemu-devel] [PATCH v2 for-2.9 20/47] qapi2texi: Plainer enum value and member name formatting Markus Armbruster
2017-03-15 12:57 ` [Qemu-devel] [PATCH v2 for-2.9 21/47] qapi2texi: Present the table of members more clearly Markus Armbruster
2017-03-15 12:57 ` [Qemu-devel] [PATCH v2 for-2.9 22/47] qapi2texi: Explain enum value undocumentedness " Markus Armbruster
2017-03-15 12:57 ` [Qemu-devel] [PATCH v2 for-2.9 23/47] qapi2texi: Don't hide undocumented members and arguments Markus Armbruster
2017-03-15 12:57 ` [Qemu-devel] [PATCH v2 for-2.9 24/47] qapi2texi: Implement boxed argument documentation Markus Armbruster
2017-03-15 12:57 ` [Qemu-devel] [PATCH v2 for-2.9 25/47] qapi2texi: Include member type in generated documentation Markus Armbruster
2017-03-15 12:57 ` [Qemu-devel] [PATCH v2 for-2.9 26/47] qapi2texi: Generate reference to base type members Markus Armbruster
2017-03-15 12:57 ` [Qemu-devel] [PATCH v2 for-2.9 27/47] qapi2texi: Generate documentation for variant members Markus Armbruster
2017-03-15 12:57 ` [Qemu-devel] [PATCH v2 for-2.9 28/47] qapi2texi: Generate descriptions for simple union tags Markus Armbruster
2017-03-15 12:57 ` [Qemu-devel] [PATCH v2 for-2.9 29/47] qapi2texi: Use category "Object" for all object types Markus Armbruster
2017-03-15 12:57 ` [Qemu-devel] [PATCH v2 for-2.9 30/47] tests/qapi-schema: Improve doc / expression mismatch coverage Markus Armbruster
2017-03-15 14:59 ` Eric Blake
2017-03-15 12:57 ` [Qemu-devel] [PATCH v2 for-2.9 31/47] qapi: Fix detection of doc / expression mismatch Markus Armbruster
2017-03-15 15:01 ` Eric Blake
2017-03-15 12:57 ` [Qemu-devel] [PATCH v2 for-2.9 32/47] qapi: Move detection of doc / expression name mismatch Markus Armbruster
2017-03-15 12:57 ` [Qemu-devel] [PATCH v2 for-2.9 33/47] qapi: Improve error message on @NAME: in free-form doc Markus Armbruster
2017-03-15 12:57 ` [Qemu-devel] [PATCH v2 for-2.9 34/47] qapi: Move empty doc section checking to doc parser Markus Armbruster
2017-03-15 12:57 ` [Qemu-devel] [PATCH v2 for-2.9 35/47] tests/qapi-schema: Rename doc-bad-args to doc-bad-command-arg Markus Armbruster
2017-03-15 12:57 ` [Qemu-devel] [PATCH v2 for-2.9 36/47] tests/qapi-schema: Improve coverage of bogus member docs Markus Armbruster
2017-03-15 12:57 ` [Qemu-devel] [PATCH v2 for-2.9 37/47] qapi: Fix detection of bogus member documentation Markus Armbruster
2017-03-15 12:57 ` [Qemu-devel] [PATCH v2 for-2.9 38/47] qapi: Eliminate check_docs() and drop QAPIDoc.expr Markus Armbruster
2017-03-15 12:57 ` [Qemu-devel] [PATCH v2 for-2.9 39/47] qapi: Drop unused variable events Markus Armbruster
2017-03-15 12:57 ` [Qemu-devel] [PATCH v2 for-2.9 40/47] qapi: Simplify what gets stored in enum_types Markus Armbruster
2017-03-15 12:57 ` [Qemu-devel] [PATCH v2 for-2.9 41/47] qapi: Factor add_name() calls out of the meta conditional Markus Armbruster
2017-03-15 12:57 ` [Qemu-devel] [PATCH v2 for-2.9 42/47] qapi: enum_types is a list used like a dict, make it one Markus Armbruster
2017-03-15 12:57 ` [Qemu-devel] [PATCH v2 for-2.9 43/47] qapi: struct_types " Markus Armbruster
2017-03-15 12:57 ` [Qemu-devel] [PATCH v2 for-2.9 44/47] qapi: union_types " Markus Armbruster
2017-03-15 12:57 ` [Qemu-devel] [PATCH v2 for-2.9 45/47] qapi: Drop unused .check_clash() parameter schema Markus Armbruster
2017-03-15 12:57 ` [Qemu-devel] [PATCH v2 for-2.9 46/47] qapi: Make pylint a bit happier Markus Armbruster
2017-03-15 12:57 ` [Qemu-devel] [PATCH v2 for-2.9 47/47] qapi: Fix a misleading parser error message Markus Armbruster
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1489582656-31133-20-git-send-email-armbru@redhat.com \
--to=armbru@redhat.com \
--cc=eblake@redhat.com \
--cc=marcandre.lureau@redhat.com \
--cc=mdroth@linux.vnet.ibm.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).