From: Medve Emilian-EMMEDVE1 Date: Fri, 05 Oct 2007 15:45:36 GMT Subject: RE: [ALTERNATE PATCH] Add a simple option parser. Message-ID: <598D5675D34BE349929AF5EDE9B03E2701624FD6@az33exm24.fsl.freescale.net> In-Reply-To: <20071005144540.GM19879@artemis.corp> Hi, You probably already considered and rejected the GNU argp parser. I used it before and I'd like to know reasons I should stay away from it. Cheers, Emil. > -----Original Message----- > From: git-owner@vger.kernel.org > [mailto:git-owner@vger.kernel.org] On Behalf Of Pierre Habouzit > Sent: Friday, October 05, 2007 9:46 AM > To: Mike Hommey > Cc: Kristian Høgsberg; git@vger.kernel.org; Junio C Hamano > Subject: Re: [ALTERNATE PATCH] Add a simple option parser. > > On Fri, Oct 05, 2007 at 02:30:14PM +0000, Mike Hommey wrote: > > On Fri, Oct 05, 2007 at 04:25:07PM +0200, Pierre Habouzit > wrote: > > > The option parser takes argc, argv, an array of struct option > > > and a usage string. Each of the struct option elements > in the array > > > describes a valid option, its type and a pointer to the > location where the > > > value is written. The entry point is parse_options(), > which scans through > > > the given argv, and matches each option there against the > list of valid > > > options. During the scan, argv is rewritten to only contain the > > > non-option command line arguments and the number of these > is returned. > > > > > > Aggregation of single switches is allowed: > > > -rC0 is the same as -r -C 0 (supposing that -C wants an arg). > > > > I like options aggregation, but I'm not sure aggregating > option arguments > > is a good idea... I can't even think of an application that does it. > > You mean like `grep -A1` or `diff -u3` or `ls -w10` ? > > getopt does that by default as well, so you may not have aware of it, > but it's how things work in your system already. > > btw `ls -rw10` works, though `ls -w10r` drops the 'r' > silently. FWIW I > don't, in that case, the alternate patch I propose complains > about "10r" > not being a valid integer, and that's because unlike getopt, the patch > krh proposed knows what an integer is ;) > -- > ·O· Pierre Habouzit > ··O madcoder@debian.org > OOO > http://www.madism.org