On Sat, Jul 31, 2021 at 8:36 AM Michael Siegel <msi@malbolge.net> wrote:
Hello,

I've recently started to implement a set of helper functions and
procedures for parsing Unix-like command-line interfaces (i.e., POSIX +
GNU-style long options, in this case)
As an old guy, I am amused to read these words .. because UNIX did not have a command-line parsing standard., and I remember the wars.  If you came from a system, where the program was exec's with the command line parameters pre-parsed (like the DEC world, ITS, and some others); UNIX seemed foreign and often consider 'bad' by folks.   The biggest argument (which was reasonable) was Unix command, sometimes used 'keys' (like tp/tar and the like) and others used switches (cp, ed).   Folks new to UNIX often b*tched as it being 'inconsistent (read things like the 'UNIX Haters Book').  I admit I was 'surprised' when I came there in the Fifth Edition in the mid-70s from the PDP-10 world, but as a programmer, I ended up really liking the fact that the command-line was not pre-parsed, other than white space removal and I did not have figure out some strange syntax for findnext() and other UUO/JSYS from my previous life.

So by the late 70's early 80's, a number of different UNIX parsing schemes popped up.   Like the stuff from Columbia Richard pointed out.   TCL in some ways end result, which had a life that was useful, but fell away too eventually.   The whole getopt(3) thing appeared originally inside of BTL.   The first version I was was from USB (Summit), but I'm not sure they were the original authors.   One problem was that it was tied up with later AT&T licenses [i.e. PWB or later] and was not in Research, the USENIX community lacked it.  Thus when AT&T brought it to us to consider for POSIX.2, there was balking.  The ISV's seemed to like it, but there was not a lot of support elsewhere.  At some point, somebody in the USENIX community wrote a version and posted it to comp.unix.sources and some people began to use it.  Of course, GNU had to take it and pee on it, so we got the long file name stuff.

All in all, it's what's you are used I suspect.

The AT&T whole getopt(3) thing works (I can deal with keys too BTW).  I guess I just don't get excited about it, these days.

Clem