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;