qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] machine: Fix replacement of '_' by '-' in machi


From: Eduardo Habkost
Subject: Re: [Qemu-devel] [PATCH] machine: Fix replacement of '_' by '-' in machine property names
Date: Thu, 13 Oct 2016 14:41:01 -0300
User-agent: Mutt/1.7.0 (2016-08-17)

On Thu, Oct 13, 2016 at 06:44:14PM +0200, Markus Armbruster wrote:
> machine_set_property() replaces '_' by '-' in the property name.
> Except it fails to replace an initial '_'.  Screwed up in commit
> b0ddb8b.  Reproducer: "-M pc,__foo_bar=true" produces "Property
> '._-foo-bar' not found".
> 
> Error messages using a mangled name rather than the name the user
> actually wrote is user-hostile, but that's a different topic.
> 
> Signed-off-by: Markus Armbruster <address@hidden>

Reviewed-by: Eduardo Habkost <address@hidden>

I suggest we follow the same approach we used in the x86 CPU
code: instead of requiring a special parser that magically
translate strings, just add property aliases for the old names
that contained "_". It would fix the user-hostile error messages
as well.


> ---
>  vl.c | 9 ++++-----
>  1 file changed, 4 insertions(+), 5 deletions(-)
> 
> diff --git a/vl.c b/vl.c
> index c657acd..1c0b0ba 100644
> --- a/vl.c
> +++ b/vl.c
> @@ -2804,17 +2804,16 @@ static int machine_set_property(void *opaque,
>  {
>      Object *obj = OBJECT(opaque);
>      Error *local_err = NULL;
> -    char *c, *qom_name;
> +    char *p, *qom_name;
>  
>      if (strcmp(name, "type") == 0) {
>          return 0;
>      }
>  
>      qom_name = g_strdup(name);
> -    c = qom_name;
> -    while (*c++) {
> -        if (*c == '_') {
> -            *c = '-';
> +    for (p = qom_name; *p; p++) {
> +        if (*p == '_') {
> +            *p = '-';
>          }
>      }
>  
> -- 
> 2.5.5
> 

-- 
Eduardo



reply via email to

[Prev in Thread] Current Thread [Next in Thread]