|
| From: | Eric Blake |
| Subject: | Re: [PATCH for-5.1 2/8] qemu-options: Factor out get_opt_name_value() helper |
| Date: | Thu, 9 Apr 2020 13:01:59 -0500 |
| User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.6.0 |
On 4/9/20 10:30 AM, Markus Armbruster wrote:
The next commits will put it to use. Signed-off-by: Markus Armbruster <address@hidden> --- util/qemu-option.c | 102 +++++++++++++++++++++++++-------------------- 1 file changed, 56 insertions(+), 46 deletions(-)
+static const char *get_opt_name_value(const char *params,
+ const char *firstname,
+ char **name, char **value)
+{
+ const char *p, *pe, *pc;
+
+ pe = strchr(params, '=');
+ pc = strchr(params, ',');
+
+ if (!pe || (pc && pc < pe)) {
+ /* found "foo,more" */
+ if (firstname) {
+ /* implicitly named first option */
+ *name = g_strdup(firstname);
+ p = get_opt_value(params, value);
Is this correct even when params is "foo,,more"? But...
static void opts_do_parse(QemuOpts *opts, const char *params, const char *firstname, bool prepend, bool *invalidp, Error **errp) { - char *option = NULL; - char *value = NULL; - const char *p,*pe,*pc; Error *local_err = NULL; + char *option, *value; + const char *p;- for (p = params; *p != '\0'; p++) {- pe = strchr(p, '='); - pc = strchr(p, ','); - if (!pe || (pc && pc < pe)) { - /* found "foo,more" */ - if (p == params && firstname) { - /* implicitly named first option */ - option = g_strdup(firstname); - p = get_opt_value(p, &value);
...in this patch, it is just code motion, so if it is a bug, it's pre-existing and worth a separate fix.
Reviewed-by: Eric Blake <address@hidden> -- Eric Blake, Principal Software Engineer Red Hat, Inc. +1-919-301-3226 Virtualization: qemu.org | libvirt.org
| [Prev in Thread] | Current Thread | [Next in Thread] |