[Portland] command line interface inconsistancies

Martin Konold martin.konold at erfrakon.de
Mon Jun 5 13:52:53 PDT 2006


Am Montag, 5. Juni 2006 18:30 schrieb Whipple, Tom:

> I suggest that as in #1, required arguments have no dashes. As in #3
> options with long names (eg --vendor) have two dashes. I would also
> suggest that commonly used options have "shortcuts" (eg -h == --help),
> where it makes sense.

What about using the GNU/POSIX convention?

From http://www.chemie.fu-berlin.de/chemnet/use/info/libc/libc_22.html

Program Argument Syntax Conventions
   
 POSIX recommends these conventions for command line arguments. getopt (see 
section Parsing Program Options) makes it easy to implement them. 
 Arguments are options if they begin with a hyphen delimiter (`-'). 
 Multiple options may follow a hyphen delimiter in a single token if the 
options do not take arguments. Thus, `-abc' is equivalent to `-a -b -c'. 
 Option names are single alphanumeric characters (as for isalnum; see section 
Classification of Characters). 
 Certain options require an argument. For example, the `-o' command of the ld 
command requires an argument--an output file name. 
 An option and its argument may or may not appear as separate tokens. (In 
other words, the whitespace separating them is optional.) Thus, `-o foo' and 
`-ofoo' are equivalent. 
 Options typically precede other non-option arguments. The implementation of 
getopt in the GNU C library normally makes it appear as if all the option 
arguments were specified before all the non-option arguments for the purposes 
of parsing, even if the user of your program intermixed option and non-option 
arguments. It does this by reordering the elements of the argv array. This 
behavior is nonstandard; if you want to suppress it, define the 
_POSIX_OPTION_ORDER environment variable. See section Standard Environment 
Variables. 
 The argument `--' terminates all options; any following arguments are treated 
as non-option arguments, even if they begin with a hyphen. 
 A token consisting of a single hyphen character is interpreted as an ordinary 
non-option argument. By convention, it is used to specify input from or 
output to the standard input and output streams. 
 Options may be supplied in any order, or appear multiple times. The 
interpretation is left up to the particular application program. 
 GNU adds long options to these conventions. Long options consist of `--' 
followed by a name made of alphanumeric characters and dashes. Option names 
are typically one to three words long, with hyphens to separate words. Users 
can abbreviate the option names as long as the abbreviations are unique. 
 To specify an argument for a long option, write `--name=value'. This syntax 
enables a long option to accept an argument that is itself optional. 
 Eventually, the GNU system will provide completion for long option names in 
the shell.

Regards,
-- martin

-- 
http://www.erfrakon.com/
Erlewein, Frank, Konold & Partner - Beratende Ingenieure und Physiker


More information about the Portland mailing list