From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:53438) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YgBIp-0006J1-8l for qemu-devel@nongnu.org; Thu, 09 Apr 2015 08:11:24 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YgBIk-0008G5-AS for qemu-devel@nongnu.org; Thu, 09 Apr 2015 08:11:23 -0400 Received: from mx1.redhat.com ([209.132.183.28]:50961) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YgBIk-0008EG-1B for qemu-devel@nongnu.org; Thu, 09 Apr 2015 08:11:18 -0400 Received: from int-mx10.intmail.prod.int.phx2.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.23]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id t39CBGrg015026 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL) for ; Thu, 9 Apr 2015 08:11:16 -0400 Message-ID: <55266C5F.9040102@redhat.com> Date: Thu, 09 Apr 2015 14:11:11 +0200 From: Paolo Bonzini MIME-Version: 1.0 References: <1428516988-6760-1-git-send-email-ehabkost@redhat.com> In-Reply-To: <1428516988-6760-1-git-send-email-ehabkost@redhat.com> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH] qemu-config: Accept empty option values List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Eduardo Habkost , qemu-devel@nongnu.org Cc: Gerd Hoffmann On 08/04/2015 20:16, Eduardo Habkost wrote: > Currently it is impossible to set an option in a config file to an empty > string, because the parser matches only lines containing non-empty > strings between double-quotes. > > As sscanf() "[" conversion specifier only matches non-empty strings, add > a special case for empty strings. > > Signed-off-by: Eduardo Habkost > --- > util/qemu-config.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/util/qemu-config.c b/util/qemu-config.c > index 2d32ce7..9f9577d 100644 > --- a/util/qemu-config.c > +++ b/util/qemu-config.c > @@ -413,7 +413,8 @@ int qemu_config_parse(FILE *fp, QemuOptsList **lists, const char *fname) > opts = qemu_opts_create(list, NULL, 0, &error_abort); > continue; > } > - if (sscanf(line, " %63s = \"%1023[^\"]\"", arg, value) == 2) { > + if (sscanf(line, " %63s = \"%1023[^\"]\"", arg, value) == 2 || > + (value[0] = '\0', sscanf(line, " %63s = \"\"", arg) == 1)) { > /* arg = value */ > if (opts == NULL) { > error_report("no group defined"); > Acked-by: Paolo Bonzini