How !Configure Does Merging of Resource Directories
===================================================


!System Merging
---------------

This is a version-based copy (newer) from the dropped !System to System:.
Only the modules subdirectory is copied. The source Modules subdirectory is
scanned and for each module the source and destination versions are
obtained. Modules are classified into 4 groups:
Malformed file - doesn't have a sensible version string
File looks like a Modsqzed module, but is doesn't have a version string
File isn't present
File has a module version
Malformed file - as a source this prevents copying, as a destination this
mandates copying (except where the source is malformed too).
File is Modsqzed, but has no version - comparison is done by file date stamp
instead.
File not present - copy over anyway
Module version - copy over if source has a newer version.
!Configure does this classification and gets Filer_Action to do the copying.

RISCOS 3.6
------ ---
   This has a multiple-version System containing a Modules directories for
each operating system version. When a merge is done, the version of the
incoming System is worked out by looking at the datestamp of the !Run file
and comparing it to the operating system release dates contained in the
Messages file as tokens of the form OS<version>. The contents of the incoming
!System.Modules is merged (as described above) with the appropriate
subdirectory of the "active" System.

   In addition, any other directories are copied into the active System using
an ordinary Copy Newer. This deals with incoming 310.Modules directories and
any other resources that may be there.

!Fonts Merging
--------------

Here it's worth reviewing the anatomy of a !Fonts directory:

!Fonts
   !Boot
   !Run
   !Sprites
   !Sprites22
   !Sprites23
   !Help
   Messages<n>    for each language <n>
   <fonts and encodings directories>

Of these !Boot to !Help should remain untouched by the merging process.
Messages<n> determins what gets seen inside the !Fonts directory (if present
for language <n>) and the fonts and encodings directories contain the font
data.

When merging:
Determine the list of fonts and encodings to merge in.
Determine the list of messages file to merge in.
Do this going through the !Fonts directories until one doesn't get full:
  *Create the messages files
  *CDir the base directories
  if no directories created then
    delete the 0-sized messages files
  else
    for all 0-sized messages files
      fill in with suitable messages for existing stuff
    next
    copy across 



 Determine which is the base font directory to merge into.
