Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.sys.acorn.programmer > #6395

Director's Calendar - weird bug

From Martin <News03@avisoft.f9.co.uk>
Subject Director's Calendar - weird bug
Newsgroups comp.sys.acorn.programmer
Date 2022-08-02 11:04 +0100
Message-ID <5a1199d0bfNews03@avisoft.f9.co.uk> (permalink)
References <c8cf64115a.harriet@bazleyfamily.co.uk> <483b6a115a.harriet@bazleyfamily.co.uk>
Organization None

Show all headers | View raw


In article <483b6a115a.harriet@bazleyfamily.co.uk>,
   Harriet Bazley <harriet@bazleyfamily.co.uk> wrote:
> On 2 Aug 2022 as I do recall,
>           Harriet Bazley  wrote:

> > Yesterday (i.e. before midnight on Monday) the !Calendar app
> > inside Director

> !Director.Apps.!Calendar

> > was telling me that it was Sun 1st August.  Now it has rolled
> > over to correct itself to Tuesday 2nd August... while I was in
> > the middle of trying to debug it, so we shall never know what was
> > going on!

I hate bugs which hide.

It is much easier to debug if you add
    time$ = TIME$ 
at the start, and replace all other TIME$ with time$.
Then you can set time$ to any value for debugging, without messing
with time itself.

> There is definitely a bug in this app affecting *every* first day
> of the month, which will always get displayed in the wrong column,
> as can be demonstrated by forcibly setting the value of TIME$ just
> before it gets checked.   Put it back to 1st August, or 1st June,
> or 1st July, and they all go wrong in the same manner.

> It is too late at night and I can't get my head around why exactly
> the program is doing what it is doing: the calculation is
> (VAL(MID$(TIME$,5,2))+16+calday%) when calculating the icon handle
> to highlight in red for 'today', where the icon numbers start at 18
> for the first Sunday in a month, and where calday% starts off as
> the index into an array of day names where Sunday is 1, and is then
> cycled downwards according to the date value to form an arbitrary
> offset pointer:

>  FOR n=VAL(MID$(TIME$,5,2)) TO 2 STEP -1
>   PROCcalday_change(-1)
> NEXT n

That looks wrong - it certainly introduces an anomaly when it is the
1st, as calday% is set to the same number as for 2nd.

> DEF PROCcalday_change(nd)
>  calday%=calday%+nd
>  IF calday%<1 calday%=7
>  IF calday%>7 calday%=1
>  ENDPROC

> I would *assume* that the problem is that PROCcalday_change gets
> called the same number of times whether VAL(MID$(TIME$,5,2)) is 01
> or 02, since the FOR loop isn't being allowed to go below 2,

Agreed!

> but I don't see why that causes the value of calday% to
> (apparently) be one integer smaller than it ought to be if TIME$
> contains 01.

Agreed again.

> The routine that is printing the numbers from 1 to
> (no_of_days_in_month) puts day 1 in the wrong column when the value
> of calday% is wrong, too:

>  FOR n=1 TO monthd(calmonth%)
>   PROCset_icon_string(calendar%,(16+calday%+n),STR$(n))
>  NEXT n

That is because calday% is wrong.

> But if I experimentally alter the FOR loop to go to 1 STEP -1 that
> makes everything go haywire, so there is clearly a good reason for
> this odd constraint!

I think it should be 1 STEP -1, as that corrects calday%.
Then the two calls to PROCset_icon_colour should be changed from +16
to +17 which corrects the colours.
I think!

It would be much easier to use Territory_ConvertTimeToOrdinals !!

Martin

-- 
Martin Avison 
Note that unfortunately this email address will become invalid
without notice if (when) any spam is received. 

Back to comp.sys.acorn.programmer | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

Re: Director's Calendar - weird bug Harriet Bazley <harriet@bazleyfamily.co.uk> - 2022-08-02 02:25 +0100
  Director's Calendar - weird bug Martin <News03@avisoft.f9.co.uk> - 2022-08-02 11:04 +0100
    Re: Director's Calendar - weird bug Harriet Bazley <harriet@bazleyfamily.co.uk> - 2022-08-02 12:06 +0100
  Re: Director's Calendar - weird bug Paul Sprangers <Paul@sprie.nl> - 2022-08-02 15:36 +0200
    Re: Director's Calendar - weird bug Harriet Bazley <harriet@bazleyfamily.co.uk> - 2022-08-02 18:45 +0100
      Director developers (was: Director's Calendar - weird bug) Harriet Bazley <harriet@bazleyfamily.co.uk> - 2022-08-02 20:58 +0100
        Re: Director developers Theo <theom+news@chiark.greenend.org.uk> - 2022-08-04 17:04 +0100
          Re: Director developers Steve Fryatt <news@stevefryatt.org.uk> - 2022-08-04 20:42 +0100
            Re: Director developers Theo <theom+news@chiark.greenend.org.uk> - 2022-08-05 00:00 +0100
            Re: Director developers druck <news@druck.org.uk> - 2022-08-05 12:18 +0100
      Re: Director's Calendar - weird bug Paul Sprangers <Paul@sprie.nl> - 2022-08-03 09:17 +0200
      Re: Director's Calendar - weird bug Martin <News03@avisoft.f9.co.uk> - 2022-08-03 13:38 +0100
        Re: Director's Calendar - weird bug Harriet Bazley <harriet@bazleyfamily.co.uk> - 2022-08-03 14:16 +0100
          Re: Director's Calendar - weird bug Martin <News03@avisoft.f9.co.uk> - 2022-08-03 16:00 +0100
            Re: Director's Calendar - weird bug Harriet Bazley <harriet@bazleyfamily.co.uk> - 2022-08-03 23:35 +0100
          Re: Director's Calendar - weird bug Paul Sprangers <Paul@sprie.nl> - 2022-08-03 20:02 +0200

csiph-web