[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
Re: [Qemu-devel] [PATCH] machine: Fix replacement of '_' by '-' in machine property names, Eduardo Habkost, 2016/10/13