Ok, I'll drop the diff. I misunderstood our previous conversation.
Sorry for the stir it caused.

On Mon, 2021-08-16 at 12:31 +0200, Ingo Schwarze wrote:
> Hi Martijn,
> 
> Martijn van Duren wrote on Sun, Aug 15, 2021 at 11:40:49PM +0200:
> > To quote schwarze in the jot mutually exclusive thread:
> > On Fri, 2021-08-13 at 11:48 +0200, Ingo Schwarze wrote:
> 
> > > In this case, even though this is not a POSIX command, POSIX utility
> > > convention 12.2.11 is pertinent:
> > > 
> > >   The order of different options relative to one another should not
> > >   matter, unless the options are documented as mutually-exclusive
> > >   and such an option is documented to override any incompatible
> > >   options preceding it.  If an option that has option-arguments is
> > >   repeated, the option and option-argument combinations should be
> > >   interpreted in the order specified on the command line.
> 
> > This is also violated by cal(1)
> 
> You seem to misunderstand.
> 
> The cal(1) utility does *not* violate this syntax guideline.
> It neither has options where the order on the command line matters
> nor options that take arguments, so this guideline simply makes
> no recommendation whatsoever for cal(1).
> 
> > (and maybe others, but this one came
> > up first). Diff below should fix this.
> 
> I think the diff is not OK.
> 
> It changes established and documented behaviour of a program, and
> you provide no explanation why the new behaviour would be more
> useful than the old one.  Also, considering whether this might or
> might not cause compatibility issues would would be required.
> 
> Compatibility issues may be unlikely because it merely defines new
> behaviour for something that is now a syntax error.  That alone does
> not make the change useful, though.
> 
> The change itself seems illogical and confusing to me.  If a user
> says "i want days numbered consecutively from Jan 1 *and* week
> numbers displayed in addition", why should the first half of the
> request be ignored?  And worse, *silently* ignored?  Both halfs of
> the request are unrelated to each other, so both one overriding
> the other and their effect depending on their order would seem
> surprising and hardly useful.
> 
> Also, allowing additional syntax makes the user interface more
> complex, which should not be done without a very good reason.
> 
> Finally, even *if* we would decide to make the UI more complex and
> allow -jw and -wj (i see no pressing need because -j does not seem
> all that useful in the first place, and needing both at the same
> time would be an even less common task), then the logical behaviour
> would be to simply honour both at the the same time.  So your change
> not only makes the UI more complex without a good reason.  It also
> blocks syntax space that could, in the future, possibly be assigned
> to more useful functionality.
> 
> I admit there are no strong logical reasons why these two options
> have to mutually exclusive.  That's seems merely an implementation
> choice to keep the command and documentation simpler.  Nothing is
> wrong with having some (not usually needed) functionality unimplemented
> in a program.  In this case, this is even properly documented.
> 
> To summarize, i oppose the diff as a whole, and i see not parts in
> it that could be salvaged.
> 
> Yours,
>   Ingo
> 
> 
> > Index: cal.1
> > ===================================================================
> > RCS file: /cvs/src/usr.bin/cal/cal.1,v
> > retrieving revision 1.31
> > diff -u -p -r1.31 cal.1
> > --- cal.1   27 Nov 2016 10:37:22 -0000      1.31
> > +++ cal.1   15 Aug 2021 21:39:28 -0000
> > @@ -53,11 +53,8 @@ The options are as follows:
> >  .Bl -tag -width Ds
> >  .It Fl j
> >  Display Julian dates (days one-based, numbered from January 1).
> > -The options
> > -.Fl j
> > -and
> > -.Fl w
> > -are mutually exclusive.
> > +Overrides earlier
> > +.Fl w .
> >  .It Fl m
> >  Display weeks starting on Monday instead of Sunday.
> >  .It Fl w
> > @@ -65,11 +62,8 @@ Display week numbers in the month displa
> >  If
> >  .Fl m
> >  is specified the ISO week format is assumed.
> > -The options
> > -.Fl j
> > -and
> > -.Fl w
> > -are mutually exclusive.
> > +Overrides earlier
> > +.Fl j .
> >  .It Fl y
> >  Display a calendar for the current year.
> >  .El
> > Index: cal.c
> > ===================================================================
> > RCS file: /cvs/src/usr.bin/cal/cal.c,v
> > retrieving revision 1.30
> > diff -u -p -r1.30 cal.c
> > --- cal.c   9 Oct 2015 01:37:06 -0000       1.30
> > +++ cal.c   15 Aug 2021 21:39:28 -0000
> > @@ -158,12 +158,14 @@ main(int argc, char *argv[])
> >             switch(ch) {
> >             case 'j':
> >                     julian = 1;
> > +                   wflag = 0;
> >                     break;
> >             case 'm':
> >                     mflag = 1;
> >                     break;
> >             case 'w':
> >                     wflag = 1;
> > +                   julian = 0;
> >                     break;
> >             case 'y':
> >                     yflag = 1;
> > @@ -174,9 +176,6 @@ main(int argc, char *argv[])
> >             }
> >     argc -= optind;
> >     argv += optind;
> > -
> > -   if (julian && wflag)
> > -           usage();
> >  
> >     day_headings = DAY_HEADINGS_S;
> >     sep1752 = sep1752s;


Reply via email to