Our getopt_long() doesn't do abbreviations or NLS - Mailing list pgsql-hackers

From Tom Lane
Subject Our getopt_long() doesn't do abbreviations or NLS
Date
Msg-id 4875.1107209790@sss.pgh.pa.us
Whole thread Raw
Responses Re: Our getopt_long() doesn't do abbreviations or NLS  (Peter Eisentraut <peter_e@gmx.net>)
List pgsql-hackers
I just noticed that our port/getopt_long.c substitute implementation
does not accept abbreviated names for long options:

$ pg_dump --username tgl regression
... works ...
$ pg_dump --user tgl regression
pg_dump: illegal option -- user
Try "pg_dump --help" for more information.
$

The GNU implementation of getopt_long is documented to allow this:
      The getopt_long() function works like getopt()  except  that  it  also      accepts  long  options,  started out
bytwo dashes.  Long option names      may be abbreviated if the abbreviation is unique or is an exact  match      for
some defined option.  A long option may take a parameter, of the      form --arg=param or --arg param.
 

and experimentation confirms it works.

Barring objections, I'm going to modify our version to allow unique
abbreviations too.

I also notice that our version isn't i18n-ready:
           if (opterr && optstring[0] != ':')               fprintf(stderr,                       "%s: illegal option
--%s\n", argv[0], place);
 

Should it be gettext'ified?
        regards, tom lane


pgsql-hackers by date:

Previous
From: "Dave Page"
Date:
Subject: Re: 7.2.7 -> 8.0.1 Bundles Ready ...
Next
From: Tom Lane
Date:
Subject: Re: 7.2.7 -> 8.0.1 Bundles Ready ...