From: Thomas Schwinge <thomas@codesourcery.com>
To: riku.voipio@iki.fi
Cc: peter.maydell@linaro.org, aliguori@us.ibm.com, sw@weilnetz.de,
agraf@suse.de, qemu-devel@nongnu.org, paul@codesourcery.com,
j.schauer@email.de, Thomas Schwinge <thomas@codesourcery.com>
Subject: [Qemu-devel] [PATCH v2] linux-user: Restore original behavior of the -E and -U command-line options.
Date: Thu, 25 Apr 2013 18:37:41 +0200 [thread overview]
Message-ID: <1366907861-22011-1-git-send-email-thomas@codesourcery.com> (raw)
In-Reply-To: <1366902405-19117-4-git-send-email-thomas@codesourcery.com>
Revert the change in behavior that had been introducecd in commit
fc9c54124d134dbd76338a92a91804dab2df8166 for the -E and -U command-line
options, but keep the comma-splitting for the QEMU_SET_ENV and QEMU_UNSET_ENV
environment variables.
Signed-off-by: Thomas Schwinge <thomas@codesourcery.com>
---
linux-user/main.c | 51 +++++++++++++++++++++++++++++++++++----------------
1 file changed, 35 insertions(+), 16 deletions(-)
diff --git linux-user/main.c linux-user/main.c
index 50bbadf..c539125 100644
--- linux-user/main.c
+++ linux-user/main.c
@@ -3209,15 +3209,37 @@ static void handle_arg_log_filename(arg_origin whence, const char *arg)
static void handle_arg_set_env(arg_origin whence, const char *arg)
{
- if (envlist_parse_set(envlist, arg) != 0) {
- usage();
+ switch (whence) {
+ case ARG_ORIGIN_ENV:
+ if (envlist_parse_set(envlist, arg) != 0) {
+ usage();
+ }
+ break;
+ case ARG_ORIGIN_CMDLINE:
+ if (envlist_setenv(envlist, arg) != 0) {
+ usage();
+ }
+ break;
+ default:
+ abort();
}
}
static void handle_arg_unset_env(arg_origin whence, const char *arg)
{
- if (envlist_parse_unset(envlist, arg) != 0) {
- usage();
+ switch (whence) {
+ case ARG_ORIGIN_ENV:
+ if (envlist_parse_unset(envlist, arg) != 0) {
+ usage();
+ }
+ break;
+ case ARG_ORIGIN_CMDLINE:
+ if (envlist_unsetenv(envlist, arg) != 0) {
+ usage();
+ }
+ break;
+ default:
+ abort();
}
}
@@ -3443,18 +3465,15 @@ static void usage(void)
guest_stack_size);
printf("\n"
- "You can use -E and -U options or the QEMU_SET_ENV and\n"
- "QEMU_UNSET_ENV environment variables to set and unset\n"
- "environment variables for the target process.\n"
- "It is possible to provide several variables by separating them\n"
- "by commas in getsubopt(3) style. Additionally it is possible to\n"
- "provide the -E and -U options multiple times.\n"
- "The following lines are equivalent:\n"
- " -E var1=val2 -E var2=val2 -U LD_PRELOAD -U LD_DEBUG\n"
- " -E var1=val2,var2=val2 -U LD_PRELOAD,LD_DEBUG\n"
- " QEMU_SET_ENV=var1=val2,var2=val2 QEMU_UNSET_ENV=LD_PRELOAD,LD_DEBUG\n"
- "Note that if you provide several changes to a single variable\n"
- "the last change will stay in effect.\n");
+"The -E and -U command-line options can be provided multiple times to set\n"
+"and unset environment variables for the target process, and -E can be used\n"
+"to specify values containing commas. When using the QEMU_SET_ENV and\n"
+"QEMU_UNSET_ENV environment variables, a comma is used in getsubopt(3) style\n"
+"to set or unset several variables. The following lines are equivalent:\n"
+" -E var1=val2 -E var2=val2 -U LD_PRELOAD -U LD_DEBUG\n"
+" QEMU_SET_ENV=var1=val2,var2=val2 QEMU_UNSET_ENV=LD_PRELOAD,LD_DEBUG\n"
+"Note that if you provide several changes to a single variable, the last\n"
+"change will stay in effect.\n");
exit(1);
}
--
1.7.10.4
next prev parent reply other threads:[~2013-04-25 16:38 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-04-24 13:16 [Qemu-devel] Environment variables for user-mode QEMU Thomas Schwinge
2013-04-24 16:11 ` Thomas Schwinge
2013-04-25 15:06 ` [Qemu-devel] [PATCH 1/4] util/envlist: Properly forward a callback's error in envlist_parse Thomas Schwinge
2013-04-25 15:06 ` [Qemu-devel] [PATCH 2/4] linux-user: Use existing envlist_parse_set/envlist_parse_unset interface Thomas Schwinge
2013-04-25 15:06 ` [Qemu-devel] [PATCH 3/4] linux-user: Tell handler_arg_* which context they're invoked from Thomas Schwinge
2013-04-25 15:06 ` [Qemu-devel] [PATCH 4/4] linux-user: Restore original behavior of the -E and -U command-line options Thomas Schwinge
2013-04-25 15:52 ` Peter Maydell
2013-04-25 16:18 ` Thomas Schwinge
2013-04-25 16:21 ` Peter Maydell
2013-04-25 16:41 ` [Qemu-devel] [PATCH] qemu-doc: Option -ignore-environment removed Thomas Schwinge
2013-04-25 17:00 ` [Qemu-trivial] " Peter Maydell
2013-04-25 17:00 ` [Qemu-devel] " Peter Maydell
2013-04-26 10:52 ` Stefan Hajnoczi
2013-04-25 16:37 ` Thomas Schwinge [this message]
-- strict thread matches above, loose matches on Subject: below --
2013-04-25 12:22 [Qemu-devel] Environment variables for user-mode QEMU Riku Voipio
2013-04-30 12:17 ` Thomas Schwinge
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=1366907861-22011-1-git-send-email-thomas@codesourcery.com \
--to=thomas@codesourcery.com \
--cc=agraf@suse.de \
--cc=aliguori@us.ibm.com \
--cc=j.schauer@email.de \
--cc=paul@codesourcery.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=riku.voipio@iki.fi \
--cc=sw@weilnetz.de \
/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.