From mboxrd@z Thu Jan 1 00:00:00 1970 From: Marek Vasut Date: Mon, 27 Aug 2012 11:57:57 +0200 Subject: [U-Boot] [PATCH v4 6/7] env: make "env default" selective, check and apply In-Reply-To: <503B2369.1080608@keymile.com> References: <1321634955-5561-1-git-send-email-gerlando.falauto@keymile.com> <201208242310.05189.marek.vasut@gmail.com> <503B2369.1080608@keymile.com> Message-ID: <201208271157.57936.marek.vasut@gmail.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Dear Gerlando Falauto, > On 08/24/2012 11:10 PM, Marek Vasut wrote: > > Dear Gerlando Falauto, > > > >> On 08/24/2012 04:56 PM, Marek Vasut wrote: > >>> Dear Gerlando Falauto, > >>> > >>>> Change the syntax (user API) for "env default": > >>>> -f: override write-once variables > >>>> var... : accept individual variable(s) > >>>> -a: all (resetting the whole env is NOT the default behavior) > >>>> > >>>> Enable variable checking and make changes effective by > >>>> enabling do_apply argument to himport_r(). > >>>> > >>>> Signed-off-by: Gerlando Falauto > >>>> --- > >>>> > >>>> common/cmd_nvedit.c | 40 > >>>> ++++++++++++++++++++++++++++++++++------ common/env_common.c | > >>>> 28 +++++++++++++++++++++++++++- > >>>> include/environment.h | 3 +++ > >>>> 3 files changed, 64 insertions(+), 7 deletions(-) > >>>> > >>>> diff --git a/common/cmd_nvedit.c b/common/cmd_nvedit.c > >>>> index b0860f3..ac2b985 100644 > >>>> --- a/common/cmd_nvedit.c > >>>> +++ b/common/cmd_nvedit.c > >>>> @@ -656,14 +656,41 @@ int envmatch(uchar *s1, int i2) > >>>> > >>>> return -1; > >>>> > >>>> } > >>>> > >>>> -static int do_env_default(cmd_tbl_t *cmdtp, int flag, > >>>> +static int do_env_default(cmd_tbl_t *cmdtp, int __flag, > >>>> > >>>> int argc, char * const argv[]) > >>>> > >>>> { > >>>> > >>>> - if (argc != 2 || strcmp(argv[1], "-f") != 0) > >>>> - return CMD_RET_USAGE; > >>>> + int all = 0, flag = 0; > >>>> > >>>> - set_default_env("## Resetting to default environment\n"); > >>>> - return 0; > >>>> + debug("Initial value for argc=%d\n", argc); > >>>> + while (--argc> 0&& **++argv == '-') { > >>> > >>> mmmmm ... **++argv, yummy :) This might use some cleanup, to make more > >>> readable. > >> > >> Uhm, this pattern is being used all over the place on that file (that's > >> where I copied it from). > > > > That doesn't mean it's right, it just means the codebase is in a very sad > > state > > > > :-C > > : > >>> Don't we have some getopt or something too ? > >> > >> Not that I (or "git grep") know of. > > > > Even more :-C > > You're absolutely right, but this patchset has been around for almost a > year and we've gotten nowhere with it. I'm afraid that if we keep adding > new (somewhat unrelated) improvement requests we'll get stuck with it > for quite some time once again. Definitelly, it was just a remark that it's sad state of the codebase, not that you should start implementing it ! > Could we keep this getopt topic in mind as an open point for a later, > overall review of how command line options are parsed? Yes! > Thank you, > Gerlando Best regards, Marek Vasut