[softwarelist] Re: SparkFS 1.41 & RO 6

  • From: John Tytgat <John.Tytgat@xxxxxxxx>
  • To: davidpilling@xxxxxxxxxxxxx
  • Date: Sat, 02 Jun 2007 15:41:29 +0200

In message <Marcel-1.53-0602124913-0b0xSBG@xxxxxxxxxxxxxxxxx> you wrote:

> On Fri 01 Jun, David Pilling wrote:
> 
> [snip]
> 
> > However it is not uncommon for people to install more than one copy of 
> > an application and then get odd results. Often the fact that the spare 
> > is tucked away in some obscure directory doesn't stop it being booted 
> > (Desktop boot file) and just makes locating the problem harder.
> 
> Years back I spoke to a Dutch programmer, and he claimed that most
> software writers doesn't write the !Boot file the proper way, or words
> like that! :-)
> It's just the nature of RISC OS that boots everything when a new dir
> is opened,

...unless the same application name has already been seen by the Filer.  So
having two e.g. !bla applications at different places on your disc, only the
first seen by the Filer will gets its !Boot executed.  The !Boot file of
the second !bla application will not get executed by the Filer when seen.

> and which should be taken into account in the !Boot file.

Not so.

> For that reason the !Boot file should check if the appdir is already
> set.

No.

> If the app pointers are empty/don't exist, it should inhibit any
> further action on/with the app pointers.
> So the !Boot file (for 'MyApp') should contain lines like:
> 
>  | > !MyApp.!Boot
>  |
>  If "<MyApp$Path>" = "" Then IconSprites <Obey$Dir>.!Sprites
>  If "<MyApp$Path>" = "" Then Set MyApp$Dir <Obey$Dir>
>  If "<MyApp$Path>" = "" Then Set MyApp$Path <Obey$Dir>.
> 
> but the !Run file is as usual like:
> 
>  | > !MyApp.!Run
>  |
>  IconSprites <Obey$Dir>.!Sprites
>  Set MyApp$Dir <Obey$Dir>
>  Set MyApp$Path <Obey$Dir>.

Absolutely not necessary.

Even more I would claim this !Boot is useless and you can remove it because
when there is no !Boot file the Filer will automatically do an "IconSprites
<Obey$Dir>.!Sprites" which is speed increase when you have losts of
applications seen by the Filer and the MyApp$Dir/MyApp$Path definitions
just serve no purpose on their own (except poluating the OS system variable
space).

The !Boot file is typically needed with defining e.g. an Alias* OS system
variable and then MyApp$Dir is most probably also needed for that definition.

> This way the app pointers do not get reset if a dir is opened
> the first time (during the current session) and having another copy
> of '!MyApp' in it, when '!MyApp' is already seen, or even running.

Again, this is incorrect.

John.
-- 
John Tytgat, in his comfy chair at home                                 BASS
John.Tytgat@xxxxxxxx                             ARM powered, RISC OS driven

Other related posts: