Patchwork Adjust qapi-visit for python-2.4.3

login
register
mail settings
Submitter Richard Henderson
Date Oct. 31, 2013, 8:26 p.m.
Message ID <1383251161-10441-1-git-send-email-rth@twiddle.net>
Download mbox | patch
Permalink /patch/287612/
State New
Headers show

Comments

Richard Henderson - Oct. 31, 2013, 8:26 p.m.
We say we support python 2.4, but python 2.4.3 does not
support the "expr if test else expr" syntax used here.

This allows QEMU to compile on RHEL 5.3, the last release for ia64.

Signed-off-by: Richard Henderson <rth@twiddle.net>
---
 scripts/qapi-visit.py | 17 ++++++++++++++---
 1 file changed, 14 insertions(+), 3 deletions(-)
Luiz Capitulino - Nov. 1, 2013, 2:42 p.m.
On Thu, 31 Oct 2013 13:26:01 -0700
Richard Henderson <rth@twiddle.net> wrote:

> We say we support python 2.4, but python 2.4.3 does not
> support the "expr if test else expr" syntax used here.
> 
> This allows QEMU to compile on RHEL 5.3, the last release for ia64.
> 
> Signed-off-by: Richard Henderson <rth@twiddle.net>

Applied to the qmp branch, thanks.

> ---
>  scripts/qapi-visit.py | 17 ++++++++++++++---
>  1 file changed, 14 insertions(+), 3 deletions(-)
> 
> diff --git a/scripts/qapi-visit.py b/scripts/qapi-visit.py
> index c39e628..65f1a54 100644
> --- a/scripts/qapi-visit.py
> +++ b/scripts/qapi-visit.py
> @@ -20,7 +20,10 @@ import errno
>  def generate_visit_struct_fields(name, field_prefix, fn_prefix, members, base = None):
>      substructs = []
>      ret = ''
> -    full_name = name if not fn_prefix else "%s_%s" % (name, fn_prefix)
> +    if not fn_prefix:
> +        full_name = name
> +    else:
> +        full_name = "%s_%s" % (name, fn_prefix)
>  
>      for argname, argentry, optional, structured in parse_args(members):
>          if structured:
> @@ -97,7 +100,10 @@ if (!error_is_set(errp)) {
>  ''')
>      push_indent()
>  
> -    full_name = name if not field_prefix else "%s_%s" % (field_prefix, name)
> +    if not field_prefix:
> +        full_name = name
> +    else:
> +        full_name = "%s_%s" % (field_prefix, name)
>  
>      if len(field_prefix):
>          ret += mcgen('''
> @@ -283,12 +289,17 @@ void visit_type_%(name)s(Visitor *m, %(name)s ** obj, const char *name, Error **
>              name=name)
>  
>      pop_indent()
> +
> +    if not discriminator:
> +        desc_type = "type"
> +    else:
> +        desc_type = discriminator
>      ret += mcgen('''
>          visit_type_%(name)sKind(m, &(*obj)->kind, "%(type)s", &err);
>          if (!err) {
>              switch ((*obj)->kind) {
>  ''',
> -                 name=name, type="type" if not discriminator else discriminator)
> +                 name=name, type=desc_type)
>  
>      for key in members:
>          if not discriminator:
Michael Roth - Nov. 1, 2013, 5:02 p.m.
Quoting Richard Henderson (2013-10-31 15:26:01)
> We say we support python 2.4, but python 2.4.3 does not
> support the "expr if test else expr" syntax used here.
> 
> This allows QEMU to compile on RHEL 5.3, the last release for ia64.
> 
> Signed-off-by: Richard Henderson <rth@twiddle.net>

Reviewed-by: Michael Roth <mdroth@linux.vnet.ibm.com>

> ---
>  scripts/qapi-visit.py | 17 ++++++++++++++---
>  1 file changed, 14 insertions(+), 3 deletions(-)
> 
> diff --git a/scripts/qapi-visit.py b/scripts/qapi-visit.py
> index c39e628..65f1a54 100644
> --- a/scripts/qapi-visit.py
> +++ b/scripts/qapi-visit.py
> @@ -20,7 +20,10 @@ import errno
>  def generate_visit_struct_fields(name, field_prefix, fn_prefix, members, base = None):
>      substructs = []
>      ret = ''
> -    full_name = name if not fn_prefix else "%s_%s" % (name, fn_prefix)
> +    if not fn_prefix:
> +        full_name = name
> +    else:
> +        full_name = "%s_%s" % (name, fn_prefix)
> 
>      for argname, argentry, optional, structured in parse_args(members):
>          if structured:
> @@ -97,7 +100,10 @@ if (!error_is_set(errp)) {
>  ''')
>      push_indent()
> 
> -    full_name = name if not field_prefix else "%s_%s" % (field_prefix, name)
> +    if not field_prefix:
> +        full_name = name
> +    else:
> +        full_name = "%s_%s" % (field_prefix, name)
> 
>      if len(field_prefix):
>          ret += mcgen('''
> @@ -283,12 +289,17 @@ void visit_type_%(name)s(Visitor *m, %(name)s ** obj, const char *name, Error **
>              name=name)
> 
>      pop_indent()
> +
> +    if not discriminator:
> +        desc_type = "type"
> +    else:
> +        desc_type = discriminator
>      ret += mcgen('''
>          visit_type_%(name)sKind(m, &(*obj)->kind, "%(type)s", &err);
>          if (!err) {
>              switch ((*obj)->kind) {
>  ''',
> -                 name=name, type="type" if not discriminator else discriminator)
> +                 name=name, type=desc_type)
> 
>      for key in members:
>          if not discriminator:
> -- 
> 1.8.3.1

Patch

diff --git a/scripts/qapi-visit.py b/scripts/qapi-visit.py
index c39e628..65f1a54 100644
--- a/scripts/qapi-visit.py
+++ b/scripts/qapi-visit.py
@@ -20,7 +20,10 @@  import errno
 def generate_visit_struct_fields(name, field_prefix, fn_prefix, members, base = None):
     substructs = []
     ret = ''
-    full_name = name if not fn_prefix else "%s_%s" % (name, fn_prefix)
+    if not fn_prefix:
+        full_name = name
+    else:
+        full_name = "%s_%s" % (name, fn_prefix)
 
     for argname, argentry, optional, structured in parse_args(members):
         if structured:
@@ -97,7 +100,10 @@  if (!error_is_set(errp)) {
 ''')
     push_indent()
 
-    full_name = name if not field_prefix else "%s_%s" % (field_prefix, name)
+    if not field_prefix:
+        full_name = name
+    else:
+        full_name = "%s_%s" % (field_prefix, name)
 
     if len(field_prefix):
         ret += mcgen('''
@@ -283,12 +289,17 @@  void visit_type_%(name)s(Visitor *m, %(name)s ** obj, const char *name, Error **
             name=name)
 
     pop_indent()
+
+    if not discriminator:
+        desc_type = "type"
+    else:
+        desc_type = discriminator
     ret += mcgen('''
         visit_type_%(name)sKind(m, &(*obj)->kind, "%(type)s", &err);
         if (!err) {
             switch ((*obj)->kind) {
 ''',
-                 name=name, type="type" if not discriminator else discriminator)
+                 name=name, type=desc_type)
 
     for key in members:
         if not discriminator: