• Tom Lane's avatar
    Fix our getopt_long's behavior for a command line argument of just "-". · 980a70b9
    Tom Lane authored
    src/port/getopt_long.c failed on such an argument, always seeing it
    as an unrecognized switch.  This is unhelpful; better is to treat such
    an item as a non-switch argument.  That behavior is what we find in
    GNU's getopt_long(); it's what src/port/getopt.c does; and it is
    required by POSIX for getopt(), which getopt_long() ought to be
    generally a superset of.  Moreover, it's expected by ecpg, which
    intends an argument of "-" to mean "read from stdin".  So fix it.
    
    Also add some documentation about ecpg's behavior in this area, since
    that was miserably underdocumented.  I had to reverse-engineer it
    from the code.
    
    Per bug #16304 from James Gray.  Back-patch to all supported branches,
    since this has been broken forever.
    
    Discussion: https://postgr.es/m/16304-c662b00a1322db7f@postgresql.org
    980a70b9
ecpg-ref.sgml 8.08 KB