[TUHS] Any Good dmr Anecdotes?

Larry McVoy lm at mcvoy.com
Wed Jul 11 13:12:06 AEST 2018


Nope, it went sideways.  But some of the most fun information I've gotten
here went sideways.  But if I offend I do beg your forgiveness.

On Tue, Jul 10, 2018 at 06:37:23PM -0700, ron minnich wrote:
> this is a DMR anecdote?
> 
> On Tue, Jul 10, 2018 at 6:32 PM Larry McVoy <lm at mcvoy.com> wrote:
> 
> > On Wed, Jul 11, 2018 at 10:20:50AM +1000, Noel Hunt wrote:
> > > I'm surprised why anyone would bother with these routines
> > > anymore, given the startling simplicity of Plan9's arg(3).
> > > One stands in awe of such simplicity. I believe it was
> > > William Cheswick who designed it, but I may be wrong.
> >
> > It's nice but I like long opts.  The getopt in BK (and now in L)
> > looks like this and produces its own help (which does miss the
> > short opts, my bad, I could fix that).  Look at the default in
> > the switch:
> >
> > int
> > main(int ac, string av[])
> > {
> >         string  c;
> >         string  lopts[] = {
> >                 "bigy:",
> >                 "date-split",
> >                 "exif",
> >                 "exif-hover",
> >                 "force",
> >                 "index:",
> >                 "names",
> >                 "nav",
> >                 "parallel:",
> >                 "quiet",
> >                 "regen",
> >                 "reverse",
> >                 "sharpen",
> >                 "slide:",
> >                 "thumbnails",
> >                 "title:",
> >                 "ysize:",
> >         };
> >
> >         while (c = getopt(av, "fj:", lopts)) {
> >                 switch (c) {
> >                     case "bigy": bigy = (int)optarg; break;
> >                     case "date-split": dates = 1; break;
> >                     case "exif": exif = 1; break;
> >                     case "exif-hover": exif_hover = 1; break;
> >                     case "f":
> >                     case "force":
> >                     case "regen":
> >                         force = 1; break;
> >                     case "index": indexf = optarg; break;
> >                     case "j":
> >                     case "parallel": parallel = (int)optarg; break;
> >                     case "quiet": quiet = 1; break;
> >                     case "names": names = 1; break;
> >                     case "nav": nav = 1; break;
> >                     case "reverse": reverse = 1; break;
> >                     case "sharpen": sharpen = 1; break;
> >                     case "slide": slidef = optarg; break;
> >                     case "title": title = optarg; break;
> >                     case "thumbnails": thumbnails = 1; break;
> >                     case "ysize": ysize = (int)optarg; break;
> >                     default:
> >                         printf("Usage: photos.l");
> >                         foreach(c in lopts) {
> >                                 if (c =~ /(.*):/) {
> >                                         printf(" --%s=<val>", $1);
> >                                 } else {
> >                                         printf(" --%s", c);
> >                                 }
> >                         }
> >                         printf("\n");
> >                         return(0);
> >                 }
> >         }
> >

-- 
---
Larry McVoy            	     lm at mcvoy.com             http://www.mcvoy.com/lm 



More information about the TUHS mailing list