Patchwork [v3] qapi: add c_fun to escape function names

login
register
mail settings
Submitter Federico Simoncelli
Date March 20, 2012, 1:54 p.m.
Message ID <1332251675-26352-1-git-send-email-fsimonce@redhat.com>
Download mbox | patch
Permalink /patch/147792/
State New
Headers show

Comments

Federico Simoncelli - March 20, 2012, 1:54 p.m.
Signed-off-by: Federico Simoncelli <fsimonce@redhat.com>
---
 scripts/qapi-commands.py |   14 +++++++-------
 scripts/qapi-types.py    |    4 ++--
 scripts/qapi-visit.py    |    4 ++--
 scripts/qapi.py          |    5 ++++-
 4 files changed, 15 insertions(+), 12 deletions(-)
Luiz Capitulino - March 23, 2012, 8:38 p.m.
On Tue, 20 Mar 2012 13:54:35 +0000
Federico Simoncelli <fsimonce@redhat.com> wrote:

> Signed-off-by: Federico Simoncelli <fsimonce@redhat.com>

This looks good now, it's only missing a good description.

> ---
>  scripts/qapi-commands.py |   14 +++++++-------
>  scripts/qapi-types.py    |    4 ++--
>  scripts/qapi-visit.py    |    4 ++--
>  scripts/qapi.py          |    5 ++++-
>  4 files changed, 15 insertions(+), 12 deletions(-)
> 
> diff --git a/scripts/qapi-commands.py b/scripts/qapi-commands.py
> index 3aabf61..30a24d2 100644
> --- a/scripts/qapi-commands.py
> +++ b/scripts/qapi-commands.py
> @@ -42,7 +42,7 @@ def generate_command_decl(name, args, ret_type):
>      return mcgen('''
>  %(ret_type)s qmp_%(name)s(%(args)sError **errp);
>  ''',
> -                 ret_type=c_type(ret_type), name=c_var(name), args=arglist).strip()
> +                 ret_type=c_type(ret_type), name=c_fun(name), args=arglist).strip()
>  
>  def gen_sync_call(name, args, ret_type, indent=0):
>      ret = ""
> @@ -59,7 +59,7 @@ def gen_sync_call(name, args, ret_type, indent=0):
>  %(retval)sqmp_%(name)s(%(args)serrp);
>  
>  ''',
> -                name=c_var(name), args=arglist, retval=retval).rstrip()
> +                name=c_fun(name), args=arglist, retval=retval).rstrip()
>      if ret_type:
>          ret += "\n" + mcgen(''''
>  if (!error_is_set(errp)) {
> @@ -74,7 +74,7 @@ if (!error_is_set(errp)) {
>  def gen_marshal_output_call(name, ret_type):
>      if not ret_type:
>          return ""
> -    return "qmp_marshal_output_%s(retval, ret, errp);" % c_var(name)
> +    return "qmp_marshal_output_%s(retval, ret, errp);" % c_fun(name)
>  
>  def gen_visitor_output_containers_decl(ret_type):
>      ret = ""
> @@ -198,16 +198,16 @@ static void qmp_marshal_output_%(c_name)s(%(c_ret_type)s ret_in, QObject **ret_o
>      qapi_dealloc_visitor_cleanup(md);
>  }
>  ''',
> -                c_ret_type=c_type(ret_type), c_name=c_var(name),
> +                c_ret_type=c_type(ret_type), c_name=c_fun(name),
>                  visitor=type_visitor(ret_type))
>  
>      return ret
>  
>  def gen_marshal_input_decl(name, args, ret_type, middle_mode):
>      if middle_mode:
> -        return 'int qmp_marshal_input_%s(Monitor *mon, const QDict *qdict, QObject **ret)' % c_var(name)
> +        return 'int qmp_marshal_input_%s(Monitor *mon, const QDict *qdict, QObject **ret)' % c_fun(name)
>      else:
> -        return 'static void qmp_marshal_input_%s(QDict *args, QObject **ret, Error **errp)' % c_var(name)
> +        return 'static void qmp_marshal_input_%s(QDict *args, QObject **ret, Error **errp)' % c_fun(name)
>  
>  
>  
> @@ -298,7 +298,7 @@ def gen_registry(commands):
>          registry += mcgen('''
>  qmp_register_command("%(name)s", qmp_marshal_input_%(c_name)s);
>  ''',
> -                     name=cmd['command'], c_name=c_var(cmd['command']))
> +                     name=cmd['command'], c_name=c_fun(cmd['command']))
>      pop_indent()
>      ret = mcgen('''
>  static void qmp_init_marshal(void)
> diff --git a/scripts/qapi-types.py b/scripts/qapi-types.py
> index 727fb77..4a734f5 100644
> --- a/scripts/qapi-types.py
> +++ b/scripts/qapi-types.py
> @@ -100,7 +100,7 @@ typedef enum %(name)s
>      %(abbrev)s_%(value)s = %(i)d,
>  ''',
>                       abbrev=de_camel_case(name).upper(),
> -                     value=c_var(value).upper(),
> +                     value=c_fun(value).upper(),
>                       i=i)
>          i += 1
>  
> @@ -126,7 +126,7 @@ struct %(name)s
>          %(c_type)s %(c_name)s;
>  ''',
>                       c_type=c_type(typeinfo[key]),
> -                     c_name=c_var(key))
> +                     c_name=c_fun(key))
>  
>      ret += mcgen('''
>      };
> diff --git a/scripts/qapi-visit.py b/scripts/qapi-visit.py
> index 54117d4..78c947c 100644
> --- a/scripts/qapi-visit.py
> +++ b/scripts/qapi-visit.py
> @@ -129,9 +129,9 @@ void visit_type_%(name)s(Visitor *m, %(name)s ** obj, const char *name, Error **
>          break;
>  ''',
>                  abbrev = de_camel_case(name).upper(),
> -                enum = de_camel_case(key).upper(),
> +                enum = c_fun(de_camel_case(key)).upper(),
>                  c_type=members[key],
> -                c_name=c_var(key))
> +                c_name=c_fun(key))
>  
>      ret += mcgen('''
>      default:
> diff --git a/scripts/qapi.py b/scripts/qapi.py
> index 6e05469..e062336 100644
> --- a/scripts/qapi.py
> +++ b/scripts/qapi.py
> @@ -131,7 +131,10 @@ def camel_case(name):
>      return new_name
>  
>  def c_var(name):
> -    return '_'.join(name.split('-')).lstrip("*")
> +    return name.replace('-', '_').lstrip("*")
> +
> +def c_fun(name):
> +    return c_var(name).replace('.', '_')
>  
>  def c_list_type(name):
>      return '%sList' % name
Anthony Liguori - March 26, 2012, 8:07 p.m.
On 03/20/2012 08:54 AM, Federico Simoncelli wrote:
> Signed-off-by: Federico Simoncelli<fsimonce@redhat.com>

Applied.  Thanks.

Regards,

Anthony Liguori

> ---
>   scripts/qapi-commands.py |   14 +++++++-------
>   scripts/qapi-types.py    |    4 ++--
>   scripts/qapi-visit.py    |    4 ++--
>   scripts/qapi.py          |    5 ++++-
>   4 files changed, 15 insertions(+), 12 deletions(-)
>
> diff --git a/scripts/qapi-commands.py b/scripts/qapi-commands.py
> index 3aabf61..30a24d2 100644
> --- a/scripts/qapi-commands.py
> +++ b/scripts/qapi-commands.py
> @@ -42,7 +42,7 @@ def generate_command_decl(name, args, ret_type):
>       return mcgen('''
>   %(ret_type)s qmp_%(name)s(%(args)sError **errp);
>   ''',
> -                 ret_type=c_type(ret_type), name=c_var(name), args=arglist).strip()
> +                 ret_type=c_type(ret_type), name=c_fun(name), args=arglist).strip()
>
>   def gen_sync_call(name, args, ret_type, indent=0):
>       ret = ""
> @@ -59,7 +59,7 @@ def gen_sync_call(name, args, ret_type, indent=0):
>   %(retval)sqmp_%(name)s(%(args)serrp);
>
>   ''',
> -                name=c_var(name), args=arglist, retval=retval).rstrip()
> +                name=c_fun(name), args=arglist, retval=retval).rstrip()
>       if ret_type:
>           ret += "\n" + mcgen(''''
>   if (!error_is_set(errp)) {
> @@ -74,7 +74,7 @@ if (!error_is_set(errp)) {
>   def gen_marshal_output_call(name, ret_type):
>       if not ret_type:
>           return ""
> -    return "qmp_marshal_output_%s(retval, ret, errp);" % c_var(name)
> +    return "qmp_marshal_output_%s(retval, ret, errp);" % c_fun(name)
>
>   def gen_visitor_output_containers_decl(ret_type):
>       ret = ""
> @@ -198,16 +198,16 @@ static void qmp_marshal_output_%(c_name)s(%(c_ret_type)s ret_in, QObject **ret_o
>       qapi_dealloc_visitor_cleanup(md);
>   }
>   ''',
> -                c_ret_type=c_type(ret_type), c_name=c_var(name),
> +                c_ret_type=c_type(ret_type), c_name=c_fun(name),
>                   visitor=type_visitor(ret_type))
>
>       return ret
>
>   def gen_marshal_input_decl(name, args, ret_type, middle_mode):
>       if middle_mode:
> -        return 'int qmp_marshal_input_%s(Monitor *mon, const QDict *qdict, QObject **ret)' % c_var(name)
> +        return 'int qmp_marshal_input_%s(Monitor *mon, const QDict *qdict, QObject **ret)' % c_fun(name)
>       else:
> -        return 'static void qmp_marshal_input_%s(QDict *args, QObject **ret, Error **errp)' % c_var(name)
> +        return 'static void qmp_marshal_input_%s(QDict *args, QObject **ret, Error **errp)' % c_fun(name)
>
>
>
> @@ -298,7 +298,7 @@ def gen_registry(commands):
>           registry += mcgen('''
>   qmp_register_command("%(name)s", qmp_marshal_input_%(c_name)s);
>   ''',
> -                     name=cmd['command'], c_name=c_var(cmd['command']))
> +                     name=cmd['command'], c_name=c_fun(cmd['command']))
>       pop_indent()
>       ret = mcgen('''
>   static void qmp_init_marshal(void)
> diff --git a/scripts/qapi-types.py b/scripts/qapi-types.py
> index 727fb77..4a734f5 100644
> --- a/scripts/qapi-types.py
> +++ b/scripts/qapi-types.py
> @@ -100,7 +100,7 @@ typedef enum %(name)s
>       %(abbrev)s_%(value)s = %(i)d,
>   ''',
>                        abbrev=de_camel_case(name).upper(),
> -                     value=c_var(value).upper(),
> +                     value=c_fun(value).upper(),
>                        i=i)
>           i += 1
>
> @@ -126,7 +126,7 @@ struct %(name)s
>           %(c_type)s %(c_name)s;
>   ''',
>                        c_type=c_type(typeinfo[key]),
> -                     c_name=c_var(key))
> +                     c_name=c_fun(key))
>
>       ret += mcgen('''
>       };
> diff --git a/scripts/qapi-visit.py b/scripts/qapi-visit.py
> index 54117d4..78c947c 100644
> --- a/scripts/qapi-visit.py
> +++ b/scripts/qapi-visit.py
> @@ -129,9 +129,9 @@ void visit_type_%(name)s(Visitor *m, %(name)s ** obj, const char *name, Error **
>           break;
>   ''',
>                   abbrev = de_camel_case(name).upper(),
> -                enum = de_camel_case(key).upper(),
> +                enum = c_fun(de_camel_case(key)).upper(),
>                   c_type=members[key],
> -                c_name=c_var(key))
> +                c_name=c_fun(key))
>
>       ret += mcgen('''
>       default:
> diff --git a/scripts/qapi.py b/scripts/qapi.py
> index 6e05469..e062336 100644
> --- a/scripts/qapi.py
> +++ b/scripts/qapi.py
> @@ -131,7 +131,10 @@ def camel_case(name):
>       return new_name
>
>   def c_var(name):
> -    return '_'.join(name.split('-')).lstrip("*")
> +    return name.replace('-', '_').lstrip("*")
> +
> +def c_fun(name):
> +    return c_var(name).replace('.', '_')
>
>   def c_list_type(name):
>       return '%sList' % name

Patch

diff --git a/scripts/qapi-commands.py b/scripts/qapi-commands.py
index 3aabf61..30a24d2 100644
--- a/scripts/qapi-commands.py
+++ b/scripts/qapi-commands.py
@@ -42,7 +42,7 @@  def generate_command_decl(name, args, ret_type):
     return mcgen('''
 %(ret_type)s qmp_%(name)s(%(args)sError **errp);
 ''',
-                 ret_type=c_type(ret_type), name=c_var(name), args=arglist).strip()
+                 ret_type=c_type(ret_type), name=c_fun(name), args=arglist).strip()
 
 def gen_sync_call(name, args, ret_type, indent=0):
     ret = ""
@@ -59,7 +59,7 @@  def gen_sync_call(name, args, ret_type, indent=0):
 %(retval)sqmp_%(name)s(%(args)serrp);
 
 ''',
-                name=c_var(name), args=arglist, retval=retval).rstrip()
+                name=c_fun(name), args=arglist, retval=retval).rstrip()
     if ret_type:
         ret += "\n" + mcgen(''''
 if (!error_is_set(errp)) {
@@ -74,7 +74,7 @@  if (!error_is_set(errp)) {
 def gen_marshal_output_call(name, ret_type):
     if not ret_type:
         return ""
-    return "qmp_marshal_output_%s(retval, ret, errp);" % c_var(name)
+    return "qmp_marshal_output_%s(retval, ret, errp);" % c_fun(name)
 
 def gen_visitor_output_containers_decl(ret_type):
     ret = ""
@@ -198,16 +198,16 @@  static void qmp_marshal_output_%(c_name)s(%(c_ret_type)s ret_in, QObject **ret_o
     qapi_dealloc_visitor_cleanup(md);
 }
 ''',
-                c_ret_type=c_type(ret_type), c_name=c_var(name),
+                c_ret_type=c_type(ret_type), c_name=c_fun(name),
                 visitor=type_visitor(ret_type))
 
     return ret
 
 def gen_marshal_input_decl(name, args, ret_type, middle_mode):
     if middle_mode:
-        return 'int qmp_marshal_input_%s(Monitor *mon, const QDict *qdict, QObject **ret)' % c_var(name)
+        return 'int qmp_marshal_input_%s(Monitor *mon, const QDict *qdict, QObject **ret)' % c_fun(name)
     else:
-        return 'static void qmp_marshal_input_%s(QDict *args, QObject **ret, Error **errp)' % c_var(name)
+        return 'static void qmp_marshal_input_%s(QDict *args, QObject **ret, Error **errp)' % c_fun(name)
 
 
 
@@ -298,7 +298,7 @@  def gen_registry(commands):
         registry += mcgen('''
 qmp_register_command("%(name)s", qmp_marshal_input_%(c_name)s);
 ''',
-                     name=cmd['command'], c_name=c_var(cmd['command']))
+                     name=cmd['command'], c_name=c_fun(cmd['command']))
     pop_indent()
     ret = mcgen('''
 static void qmp_init_marshal(void)
diff --git a/scripts/qapi-types.py b/scripts/qapi-types.py
index 727fb77..4a734f5 100644
--- a/scripts/qapi-types.py
+++ b/scripts/qapi-types.py
@@ -100,7 +100,7 @@  typedef enum %(name)s
     %(abbrev)s_%(value)s = %(i)d,
 ''',
                      abbrev=de_camel_case(name).upper(),
-                     value=c_var(value).upper(),
+                     value=c_fun(value).upper(),
                      i=i)
         i += 1
 
@@ -126,7 +126,7 @@  struct %(name)s
         %(c_type)s %(c_name)s;
 ''',
                      c_type=c_type(typeinfo[key]),
-                     c_name=c_var(key))
+                     c_name=c_fun(key))
 
     ret += mcgen('''
     };
diff --git a/scripts/qapi-visit.py b/scripts/qapi-visit.py
index 54117d4..78c947c 100644
--- a/scripts/qapi-visit.py
+++ b/scripts/qapi-visit.py
@@ -129,9 +129,9 @@  void visit_type_%(name)s(Visitor *m, %(name)s ** obj, const char *name, Error **
         break;
 ''',
                 abbrev = de_camel_case(name).upper(),
-                enum = de_camel_case(key).upper(),
+                enum = c_fun(de_camel_case(key)).upper(),
                 c_type=members[key],
-                c_name=c_var(key))
+                c_name=c_fun(key))
 
     ret += mcgen('''
     default:
diff --git a/scripts/qapi.py b/scripts/qapi.py
index 6e05469..e062336 100644
--- a/scripts/qapi.py
+++ b/scripts/qapi.py
@@ -131,7 +131,10 @@  def camel_case(name):
     return new_name
 
 def c_var(name):
-    return '_'.join(name.split('-')).lstrip("*")
+    return name.replace('-', '_').lstrip("*")
+
+def c_fun(name):
+    return c_var(name).replace('.', '_')
 
 def c_list_type(name):
     return '%sList' % name