From: Kevin Wolf <kwolf@redhat.com>
To: Gerd Hoffmann <kraxel@redhat.com>
Cc: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH 4/8] qemu-option: factor out parse_option_bool
Date: Wed, 22 Jul 2009 14:42:25 +0200 [thread overview]
Message-ID: <4A670931.6090008@redhat.com> (raw)
In-Reply-To: <1248258307-17071-5-git-send-email-kraxel@redhat.com>
Gerd Hoffmann schrieb:
> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
> ---
> qemu-option.c | 34 ++++++++++++++++++++++------------
> qemu-option.h | 1 +
> 2 files changed, 23 insertions(+), 12 deletions(-)
>
> diff --git a/qemu-option.c b/qemu-option.c
> index 646bbad..45f0c8f 100644
> --- a/qemu-option.c
> +++ b/qemu-option.c
> @@ -101,6 +101,23 @@ QEMUOptionParameter *get_option_parameter(QEMUOptionParameter *list,
> return NULL;
> }
>
> +int parse_option_bool(const char *name, const char *value, int *ret)
I don't really like this being global. In the end, we want to have only
one parsing mechanism anyway and I don't think it needs to have multiple
source files. So is there any reason not to put your QemuOpts code into
qemu-option.c and leave parsing internals static?
> +{
> + if (value != NULL) {
> + if (!strcmp(value, "on")) {
> + *ret = 1;
> + } else if (!strcmp(value, "off")) {
> + *ret = 0;
> + } else {
> + fprintf(stderr, "Option '%s': Use 'on' or 'off'\n", name);
> + return -1;
> + }
> + } else {
> + *ret = 1;
> + }
> + return 0;
> +}
> +
> /*
> * Sets the value of a parameter in a given option list. The parsing of the
> * value depends on the type of option:
> @@ -121,6 +138,8 @@ QEMUOptionParameter *get_option_parameter(QEMUOptionParameter *list,
> int set_option_parameter(QEMUOptionParameter *list, const char *name,
> const char *value)
> {
> + int flag;
> +
> // Find a matching parameter
> list = get_option_parameter(list, name);
> if (list == NULL) {
> @@ -131,18 +150,9 @@ int set_option_parameter(QEMUOptionParameter *list, const char *name,
> // Process parameter
> switch (list->type) {
> case OPT_FLAG:
> - if (value != NULL) {
> - if (!strcmp(value, "on")) {
> - list->value.n = 1;
> - } else if (!strcmp(value, "off")) {
> - list->value.n = 0;
> - } else {
> - fprintf(stderr, "Option '%s': Use 'on' or 'off'\n", name);
> - return -1;
> - }
> - } else {
> - list->value.n = 1;
> - }
> + if (-1 == parse_option_bool(name, value, &flag))
You're still doing it... ;-)
Kevin
next prev parent reply other threads:[~2009-07-22 12:43 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-07-22 10:24 [Qemu-devel] [PATCH 0/8] drive cleanups Gerd Hoffmann
2009-07-22 10:25 ` [Qemu-devel] [PATCH 1/8] kill drives_table Gerd Hoffmann
2009-07-22 10:25 ` [Qemu-devel] [PATCH 2/8] add support for drive ids Gerd Hoffmann
2009-07-22 10:25 ` [Qemu-devel] [PATCH 3/8] kill drives_opt Gerd Hoffmann
2009-07-22 10:25 ` [Qemu-devel] [PATCH 4/8] qemu-option: factor out parse_option_bool Gerd Hoffmann
2009-07-22 12:42 ` Kevin Wolf [this message]
2009-07-22 10:25 ` [Qemu-devel] [PATCH 5/8] qemu-option: factor out parse_option_size Gerd Hoffmann
2009-07-22 10:25 ` [Qemu-devel] [PATCH 6/8] qemu-option: add parse_option_number Gerd Hoffmann
2009-07-22 10:25 ` [Qemu-devel] [PATCH 7/8] QemuOpts: framework for storing and parsing options Gerd Hoffmann
2009-07-22 10:25 ` [Qemu-devel] [PATCH 8/8] switch -drive to QemuOpts Gerd Hoffmann
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4A670931.6090008@redhat.com \
--to=kwolf@redhat.com \
--cc=kraxel@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.