Subject: Re: CVS commit: src
To: Hubert Feyrer <hubert.feyrer@rz.uni-regensburg.de>
From: Luke Mewburn <lukem@goanna.cs.rmit.edu.au>
List: tech-userlevel
Date: 01/24/1999 10:19:00
Hubert Feyrer writes:
> On Sat, 23 Jan 1999, Charles M. Hannum wrote:
> > Actually, there have more or less been plans to add long options to
> > everything eventually. I'm not sure I want to waste any time arguing
> > about whether that's a good idea or not; it really comes down to a
> > matter of religion. My religion says that if a lot of people install
> > GNU fileutils just to get long options (and they do), then maybe we
> > should do something about that.
>
> While we're at getopt-bashing:
> Matt asked me to parse some options for tetris(6) from some environment
> variable, so he could make some options permanent via the environment.
> It would be nice if we could add this to some getopt() function somehow to
> parse an environment variable instead of argv[].
>
> E.g.:
> LS=-la ; export LS ; ls => behave as if "ls -la" was invoked
years ago (1992 or 1993?) i contributed the framework of such a feature
to gzip 1.0.6. i've since pulled it back into one of my own products.
void add_envopt(int argc, char ***argv, char *envvar);
what it does is parses the environment var named in envvar and prepends
the expanded tokens to argv/argc, so that the standard getopt is then run
it gets the prepended options first, so the user has a chance to override
on the command line.
unfortunately, this code is GPL (this is before i decided i liked the
BSD license better) and can't be used as it stands in libc/libutil.
it's a fairly trivial function, and in any case, if i asked Jean Loup
Gailly if he a) remembers me providing the original code (which he
then added features to), and b) minds me putting it under a BSD license,
then we could use it.