
 Director
~~~~~~~~~~
Program		Director
Purpose		A Desktop Utility
Version		0.36, 6 September 2003
Author		The RISC OS Director developers,  2003


 Version History
=================

 0.36 - 6Sep03
---------------

Added -dontproxy to RunFilerAc.
Added -priority switch to all the IconSprites related menus and
  commands for Select 3.
Added Castle recommended system variables to !Run
Added error checking to DoClose (used in combination with Switch)
Added language translations the Director module and Info window.
  (with thanks to Jrme Mathevet for the French translations and code
  testing)
Added RISCOS 4 service table to all suitable modules.
Added routine signatures to all modules.
Added support to the -maxwimpslot and -minwimpslot options for an 'm' or
  'M' suffix (for megabyte).
Adjusted templates so that they look nicer in Select3.
Close can now accept a command line argument of a window handle.
CommMenu fixed to handle '|' chars from the output of a *command.
Corrected module header for AddRes and modified it so that it can add single
  files to Resources:$ .
FilerMenu copes with objects which don't exist.  (Jrme Mathevet)
Fixed DoClose so that it terminates the Iconize WIMP message.
  (Harriet Bazley)
Fixed up BinPL so that when it deleted entries they weren't send to
  Recyclone under Select 3.
Fixed the bug where "*DirectorWindow <window>" followed by another
  *DirectorWindow operation on the same window without a Wimp_Poll
  inbetween caused Director to fail.
Internal changes made to the build process.
MenuMenu now handles Resources:$ and other FSes which end in :$ (i.e.
  are without drive numbers).  (Jrme Mathevet)
Now builds two Director modules, one for RISC OS 3.1 and one for RISC OS
  3.6+ for language translations.
Stopped OldMenu: from generating an 'Illegal window handle' error under
  certain conditions.
Switch no longer mangles window title bars with '<untitled>' in them.
  It also handles window title bars which include the '<' character,
  correctly.


 0.35 - 1Jun03
---------------

This release was pulled due to potential issues with the Director module.


 0.34 - 15Apr03
----------------

Fixed presveration of flags in Filters.
Fixed AddRes (it now produces working modules).


 0.33 - 5Apr03
---------------

32-bitted Director and associated utilities
Added French resources, with thanks to Jrme Mathevet
Added RISC OS 5 Sprites.  (Richard Hallas)
Checks for pre-RISC OS 5 before setting up the BackIcon filters.
  (Richard Hallas)
Added -maxwimpslot to DirectorOptions.
Added CVSMenu and added support for this into MenuMenu.  (Dan Ellis)
Expanded FilerMenu and added support for this into MenuMenu.
TreePick can now accept multiple filetypes in one go.  (Lenny)
Miscellaneous MenuMenu changes.  (Harriet Bazley)
Fixed Memoriser to handle badly formed data open messages.  (Matthias Faust)
Fixed the "Close Filers" menu option and removed its keyboard shortcut.  (Harriet Bazley)
Fixed handling of long system variables under RISC OS 3.1 (Harriet Bazley)
Potential bug in DirectorEdit fixed.
Bug in DirectorURL fixed (and other changes to DirectorURL).  (Lenny)
Bug fixed if there is an error when starting Director.  (Harriet Bazley)
Other miscellaneous bugs fixed.


 0.32 - 17Dec02
----------------

Added NewIcons command alias.  (Philip Ludlam)
Added DirectorOptions command. See NewDocs for more information.
Added IfCommand utility (not documented yet).
Added WinLogo and WinMenu as keys which Director understands (OS
  dependant).  (Philip Ludlam)
Added ModVersion utility.  (Philip Ludlam)
Changed format for bin to YYYY-MM-DD.  (Jrme Mathevet)
Udated IfX utility.  (Philip Ludlam)
After loading Director checks the status of MenuProcessing. If it is off
  then the user is informed.  (Philip Ludlam)
Minor changes to make Director happier with RISC OS 4.33/Select2i3.
  (Philip Ludlam).
Fixed repeated EndMenu's causing internal errors.  (Philip Ludlam)
Fixed a couple of bugs in TreePickSM and TreePick.  (Lenny)
Fixed bug if AddSprites wasn't present.  (Martin Dann)
Fixed bug in FindDrives and possible bug in ExpPath.  (Chris Manning)
Fixed a few other bugs.  (Philip Ludlam)
All BASIC assembler files changed to ObjAsm format.  (Philip Ludlam)


Please note:
FindDrives doesn't have support for any supplied options on the command line
  at present


 0.31 - 14Aug02 (beta release only)
--------------------------------------

Added CDVolume.  (Martin Dann)
Added ModuleInfo.  (Steve Johnson)
Added Quit option to Tasks menu.
Added NewDocs directory.
Expanded Backdrops, Icons, Palettes and Tools menus.  (Lenny)
MenuProcessing is now nestable.
All directory menus (menu click on a Filer title bar) are sorted
  alphabetically, rather than by ASCII value.  (Lenny)
Directory menus (menu click on a Filer title bar) and MenuMenu menus
  should now work for Pipe:$ 
Improved DirectorURL to support the ANT/InetSuite protocol for launching
  URLs (still needs minor work though).
DirectorEdit can force a text editor to be loaded to edit a file.
FindDrives supports the -default command line option which sets the
  default display option. Fixed other bugs in FindDrives.
Rationalised the Modules menu.  (Harriet Bazley)
Fixed occasional start up errors.  (Harriet Bazley)
Files operated on by MenuMenu are now also added to the Memoriser.
  (Harriet Bazley)
Fixed a couple of bugs in displaying free memory/free drive space.
  (Harriet Bazley)
Fixed 'Option -dash'.  (Harriet Bazley)
Fixed Dash with no previous Option.


 0.30 - 01May02 (beta release only)
------------------------------------

Re-implemented FindDrives (it still needs work though).
Added support for displaying the free space of a drive under DirectorIcon
Director should canonicalise the path of any directories/files it opens.
  For instance instead of it opening Files:WebSites it willnow open
  ADFS::HardDisk4.$.Files.WebSites .  (Harriet Bazley)
Added RMSave utility which can save a module to disk.  (Jamie Temple)
The Switch utility in past versions never listed windows opened by
  Nettle and any 'Edit mail message StrongED/Messenger(Pro)' windows.
Expanded DirectorWindow.
Partially removed the Info window and replaced it with a DirectorWindow.
  See !Commands file for initial details of the DirectorWindow command.
Fixed a problem with the CD drive icons.  (Matthew Somerville)
Fixed a few DirectorIcon bugs.
Added source code for AddRes.
Other internal changes have been made.


 0.29 - 03Mar02
----------------

Trims module help strings if greater than 255 characters (Reuben Thomas)
Fixed list of module SWI calls, when the module is PrintQFS.
  (Matthew Somerville)
Fixed Unknown operand error when clicking menu over a CDFS icon.
  (Andrew, James Carey)
Added filters for the backicon icon on windows (J.Wright):
  Adjust:         brings window to the top
  Shift + Select: moves window down one
  Shift + Adjust: moves window up one
Stopped MenuMenu's using sexed quotes in menus as this caused some problems
  with certain fonts.  (Lenny)
Added, changed and removed some MenuMenu items.  (Harriet Bazley)
Added 'Close All (app)' option to Close window section.  (Jon Wright)
Added initial support for launching URLs from Director with the command
  DirectorURL. See the Docs.!Commands for more details.
Altered !!SetVars to make an intelligent guess about the which is the
  main hard drive (partition) on a system.  (a4)
Altered the Paths menu to include Run$Path.  (Lenny)
Cleaned up the System menu.  (Lenny)
Fixed support for RISC OS 3.1 within Switch (and co.).  (Harriet Bazley)
A bug in memoriser could cause an Abort on data transfer error when
  quitting Director under certain conditions. This has been fixed.
  (Matthew Somerville)
A bug when loading an empty memoriser file has been fixed. (Fred Graute)
Now uses Filer_OpenDir to open directories rather than Filer_Run.
A bug in MemoriserClear has been fixed.
Fixed bug in Templates file which caused Director to report the error:
  "Window not found" if you click on one or two icons in the Info window.
  (Matthew Somerville)
Miscellaneous memoriser bugs have been fixed as well.
Minor alterations have been made to the way Director is compiled.
  You should not notice any differences in day to day usage though.


 0.28 - 30Jan02
----------------

Zero terminates certain wimp messages. The previous behaviour could cause error
  messages from a filing system in the wrong circumstances.
Items like ADFS::HardDisk4.$ used to get split just after the last ':'.
  This has been fixed.
Expanded the Edit Current Menu menu.


 0.27 - 22Jan02
---------------

Director licence changed to the GPL: http://www.gnu.org/copyleft/gpl.html
  Development passed from Nick Craig-Wood to the RISC OS Director developers:
  mailto:director-developers@lists.sourceforge.net

Partically fixed sorting filer menus. In OldMenu made director issue the mouse
movement before the send message to
  see if that cures the problem with Larger.
Fixed Switch so it deals properly with 0 length title bars. Sometimes under
  RISCOS 3.7 the wimp transfer doesn't work properly and gives a 0 length
  title bar - this seems to be a bug in Wimp_TransferBlock. Putting an
  XOS_SynchroniseCodeAreas in fixes the problem.
Made a Sockets menu - based on Stewart Brodies opensocks
Fixed Modules menu again! (Tabs in version strings (Reuben Thomas) and strings
  terminated by CR not 0)
Fixed a bug in the path menu maker which was making incorrect validation
  strings for -nosprite -path items (thanks to Dick Tanis for spotting this)
Fixed a bug which meant that Director$AtExit... commands were not run when
  Director quit.
Added -allow option to the Option command. Allows the user to specify what
  characters can or cannot be typed in.
MemoriserClear and Notes utilities added. 3rdParty directory added.
Changed the menu options that set background colours for menu items when
 running under RISC OS 4.


 0.26 - 30Jan96
----------------

Set Director$WindowName when running a command also, so Windows can kill
  themselves.
Made F0 an alias of Print


 0.25 - 25Jan96
---------------

Included biggest into the release to make those mysterious menu options
  work!
Added a line into !Core looking for the old IfThereIs to produce an error.
Fixed: Bug where director tried to patch up a window definition. This was
  causing a lot of odd problems. Director now only patches up a menu when it
  is moved from the stored list to the displayed list. This will stop
  director patching up memoriser menus and directory menus which isn't
  required.
Fixed: Adjust clicking 4 times in quick succession on a drive icon causes a
  crash. It was patching up a non existent menu, and was fixed by the code
  above.
Fixed: Memoriser save file kept growing and growing (finally noticed when it
  had 384 items in it :-) Changed the way the memoriser works internally (it
  no longer tries to keep a count of items - which was going wrong), and it
  now prunes the block when it is shown as a menu.
Made hourglass count when running though DirectorObey files. It is not an
  accurate percentage, just an indication that something is happening!
Made parameter to DirectorShowMenu be GSTransed
Changed StartTask to use Wimp_ReadSysInfo5 rather than the old method of
  sending a message. This is shorter and better!
Added Click and AppEnsure by Malcolm Boura into the distribution.
Added DirectorWindow and support to go with it.


 0.24 - 08Jan96
---------------

Fixed bug where MenuMenu off first item above the dashed line in a directory
  menu goes wrong if you traverse any other items because Director$... gets
  reset
Fixed OldMenu: bug where Director would do something random if a click
  hadn't been filtered and OldMenu: was used.
Made DirectorObey throwback errors and produce errors texts of the form
  "<error> at line <n> of file <name>" for people without DDEUtils. This
  should make it very much easier to track down problems with Director scripts
  provided that they were DirectorObey-ed which all the default ones are (self
  defence really ;-). It is interesting what happens when you get nested
  DirectorObey calls with errors :-)
When Director quits it looks though any system variables of the form
  Director$AtExit* and runs the associated commands. Note that these commands
  wont get run if you double click on Director while it is running. This is
  because Director isn't running as a task when it is killed (and can't do) so
  it can't launch the commands as tasks. If anyone feels strongly about this
  then I might change it (it would mean replacing the RMKill Director in !Run
  with a program to send a quit message to director, and wait for director to
  die before continuing).
Used Director$AtExit to make auto save and load for the memoriser in the
  file Director:Memory.
Included AddRes and CommandBasic from Paul Clifford into the Utils
  directory. Edit the !Run file if you want CommandBasic loaded by default.


 0.23 - 30Nov95
---------------

Changed Alias$RedrawScreen so it works properly! Thanks to Paul Clifford.
Added -sort to EndMenu
Added SWIs Director_QuickSort and Director_SortMenu
Modules etc revisited by Russel Thickings
New FileTypes from Paul Clifford (much faster and configurable)
Added dynamic areas dynamic menu


 0.22 - 31Oct95
---------------

Added dynamic menu Director:Menus.System.ShareFS for listing ShareFS
  (Access) discs and servers.
Changed Director:Menus.System.FindDrives to look for ShareFS drives also.
Cy Booker improved OpenFiles to make it sorted and allow unlimited length
  file names.
A few changes needed after installing OSLib 5.1
Made NormalReturn preserve all registers rather than none! This means that
  the SWIs preserve their registers like they should. (Thanks to Paul
  Clifford for pointing this out.)
Switch added and Close and DoClose modified by Russell Thickings with some
  further tweaks by me. Added a filter on menu over a back icon to put Switch
  up by default.
DoClose modified so pin no longer gives an error message if it can't find a
  file name, it iconises the window instead. Also Close now uses the -file
  attribute in DirectorMouseDir so that for example Zap windows can be pinned.
Added *DirectorSortMenu. Don't try sorting menu blocks with key short cuts!
Made the file menus be sorted by name. This fixes the sorting problems when
  using LongFiles, DOSFS and CDFS.
Made the first item above the dotted line in a path menu with up menus give
  the MenuMenu as a sub-menu rather than having no sub-menu. Clicking on this
  option does the normal thing for a path though.


 0.21 - 21Jul95	*** Public Release #3 via Acorn User October 1995 issue
-------------------------------------------------------------------------

Opened the keys window with a position of -3 so it never becomes visible.
  *** took it out again as it stiffs the machine when you press F12 :-(
Only update time icons when the time string has changed. This stops the once
  per second flicker if you have a HH:MM time display.
IfThereIs had another parameter -X to suppress errors added.
Fixed a bug in Utils.FilerAc which stopped delete working on RISCOS 3.10
Fixed a bug in System.Variables which stopped "text working.


 0.20 - 22Jun95
----------------

Support interactive help in a basic form, prior to adding display of what
  each menu entry does.
Made -key exit quietly if given an empty string to enable the passing of keys
  in system variables, null variable meaning no key.


 0.19 - 16Jun95
----------------

Made menu entry icon validation strings fixed length so they can be changed
  later. Interestingly padding with ; provokes the RISOS 3.5 menu width bug,
  padding with space doesn't.
Before opening a menu, any path items have their sprites updated. At last
  application and file sprites get updated properly as the applications are
  seen! (Dom, this one is for you :-) However it only updates it once from
  unknown app to sprite, so opening menus with path items doesn't take too
  long.
Not found path items will now go from shaded to un-shaded if they are later
  found.
Filter's system changed to use Wimp_Filter for all non -ve icons. This makes
  it much better behaved when the machine is busy.
Made director use Service_FilterManagerInstalled and
  Service_FilterManagerDying to restart its filters if the filter manager is
  restarted (eg when running the toolbox on RISCOS 3.10)
We now restart the filer wimp filter if the filer is restarted.
Added -sprite to Option. This can be used to specify a sprite which must be
  of the correct size, for a menu entry. If the sprite is not found then
  small_xxx will be used.


 0.18 - 05May95	*** Public Release #2
---------------------------------------

Fixed: a bug in the Ack routine. Would have crashed director if anyone had
  sent it a recorded message.
You can now drag files from the filer or pinboard into the savebox. It
  leaves bits of the old icon behind for some reason.
Added -dragto to DirectorIcon. This specifies a menu which is run when a
  file is dragged to a director icon. The file path is is Director$CurrentPath
  Leaf and Dir as usual.
Added -dragfrom to DirectorIcon. This either takes a path which then acts
  exactly like the SaveBox or takes a menu preceded by * which will be run
  with Director$CurrentPath Leaf and Dir set up.
Added -file to DirectorMouseDir. This indicates that a file result is
  acceptable. Changed MenuMenu to use it.
Fixed: untyped files don't display an icon


 0.17 - 02May95
----------------

Fixed: When the computer is busy the menus don't always work properly. When
  we are using Wimp_GetPointerInfo from within the OS_Mouse routine, we are
  getting old information. This includes the mouse position AND the window
  handle / icon. Updating the mouse position in the window pointer block fixes
  the problem.
Made dynamic menus (only) set Director$Window and Director$Icon to the window
  handle and icon number that the request was over respectively.
Fixed: directorfilter "xxxx" xxxx pinboard -menu, where xxxx isn't a valid
  task name, causes everything to be intercepted!
Fixed: Can't attach a filter to an iconbar icon.
Added a pretend icon type IconBar so it is possible to filter on icon bar
  icons only. Eg
    DirectorFilter "CDFS" "CDFS Filer" "CDFS" -icon IconBar -menu


 0.16 - 11Apr95
----------------

Changed the source files into h and s directories and made the h files import
  the correct labels. Shows up all the places where routines are in the wrong
  place!
Started using Straylight's setdate program. It finally sorts out the
  makefile problems of creating a bit of source program with the date in it.


 0.15 - 07Apr95
----------------

Implemented DirectorShowMenu. This means that you can create obey files to
  be pinned to the backdrop and clicked on to get menus appearing.
-nosprite added to the option command. This stops a sprite appearing in a
  path menu. It also stops the menu entry being greyed out if it did not
  exist.
-remove option added to Menu
-remove option added to DirectorIcon
If the menu or icon is not found then they don't return an error.
Added colours and icon numbers to Menu.Aliases
Added DirectorFilter to director and removed the built in filters on the
  pinboard, and title bars. Now need to add the following to get the previous
  default setup.
    DirectorFilter "Title Bar Directory Menu" * Path: -icon TitleBar -menu
    DirectorFilter "Alt Menu Directory Menu" * Path: -menu -alt
    DirectorFilter "Pinboard Menu" Pinboard Pinboard -icon WorkArea -menu
Put auto detection of tasks starting and closing to keep the task handles up
  to date. You can now filter on a task which isn't started, and director will
  notice when it starts and change the task handle.
Enumerated lists of menus/icons/filter added using a SWI interface and
  dynamic menus, using new SWI Director_Enumerate.
Added memory information SWI Director_Memory and a dynamic menu to show it.
Removed DirectorMemory and ListMenus as they are redundant along with the
  number printing routines as they are no longer used. This saved 920 bytes.


 0.14 - 21Mar95
----------------

Made director use Dynamic areas if the OS supports them. This has the
  advantage of reducing RMA fragmentation. The module code and its main
  workspace (3.5k) are still held in the RMA, but all other allocations will
  come from the dynamic area. The area should shrink and grow as necessary.
DirectorMemory altered to return information about the dynamic area if it is
  in operation.
	Dynamic area      24576	- total size of dynamic area
	Free in area       2168	- total free space in area
	Largest block      1564	- largest block that could be allocated
				- without extending the heap
Fixed MenuMenu over filers (again).
MemoriserSave and MemoriserLoad implemented.


 0.13 - 17Mar95
----------------

Claimed UpCallV to intercept Media not present and Media not known. This is
  done when generating path menus and when generating directory menus. For
  some reason using OS_ChangeEnvironment didn't work, maybe it doesn't for
  module tasks. Using OS_Claim on UpCallV worked fine.
Added 256 bytes space on the end of the OS_GBPB block when reading
  directories. This is for badly behaved file systems (like CDFS) which write
  off the end of the block. Fixes only getting partial directory menus on some
  CD-ROMs with very large directories.
If a file (or directory) in the memoriser menu is not found when Memoriser:
  is being opened (eg you've deleted it) then it will be removed from memorised
  files and won't show on the menu.
An optional parameter has been added to Memoriser:. It is numeric in the
  range 0 - 7. If it is omitted memoriser works as before.
    Memoriser:1 - memoriser shows applications
    Memoriser:2 - memoriser shows directories and images
    Memoriser:4 - memoriser shows files
The parameters can be combined in a linear fashion, eg Memoriser:6 shows
  directories, images and applications but not files.
Invented an error exit macro which save an instruction sometimes (when
  exiting from a routine with a stack frame), and at least 4 cycles. Makes the
  macros more logical and easier to use also.


 0.12 - 15Mar95
----------------

MakeRelease corrected to include my menu, not two copies of the default menu.
OpenFiles and Tasks dynamic menus added.
Dynamic MenuMenu converted into BASIC for speed, and fiddled with
  extensively.
Lots more small changes and bug fixes in the menus.
Fixed director and Filer Short Cuts interaction by making director stricter
  about which menu entry in the filer it allows a click over.


 0.11 - 21Oct94	*** Public Release #1
---------------------------------------

DirectorEdit changed so it works in a task window and at the F12 star prompt.
  Should work from every possible situation now.
DirectorMouseDir implemented (an external interface to an existing routine).


 0.10 - 19Oct94
----------------

Menu over filer menu had stopped working.
DirectorPathParse implemented (an external interface to an existing routine).


 0.09 - 10Oct94
----------------

Dynamic: made. Works like Command: except the command should set
  Director$Menu to the name of the extended menu to open on its return.
-up makes the item have a submenu even if it is a file
SWI interface made. Pass r0 as a string with the parameters to the
  equivalently named * command to speed up dynamic menus.
GSTrans: command made. It GSTranses the following command and then
  reinterprets it.
Director$MenuMenu used to get name of MenuMenu to open (could/should do this
  to the pinboard menu also)
-temp option added to Menu. A menu with -temp will be displayed once and
  then destroyed. Useful for dynamic menus and used internally with directory
  menus. Temporary menus show on ListMenus with a * appended.
MenuText system variable is set whenever a menu selection is decoded so it
  can be used in dynamic menus attached as sub-menus, not just commands.


 0.08 - 04Oct94
----------------

Swi chunk (&4A100) and error chunk (&80D000) arrived from Acorn.
Error numbers rationalised (but not documented :-)
Installation of pinboard filter changed so it doesn't give an error if there
  is no pinboard installed


 0.07 - 09Sep94
----------------

Name changed :-)
Sprites and Sprites22 made
Made a strlen1 for length of a string + terminator since this seems to be the
  most common usage, and added it in.
Deleted some unused printing routines.
Memoriser files now have submenu pointers.
A Path: or -path can now be given of a file as well as a directory. It puts
  the file above the dotted line as well as below.
Anywhere that used the directory that the pointer was over (eg Path: or
  Save:) now is given the straight path (whether it is a file or directory)
  instead of the path is it was a directory or the ^ path if it was a file.
  Not sure what effect this will have on existing Menus.
Removed some unused message types
Where using SaveRegs and ROUTINE changed the saved registers to NONE
Added a -v or -verbose option to DirectorObey
Included &, @ and % in ParsePath (fixes problem with & when using the net).
Fixed root directories appearing as unknown files


 0.06 - 05Sep94
----------------

Changed the way mouse clicks are intercepted by intercepting MouseV rather
  than EventV. This works because the Wimp uses SWI XOS_Mouse internally.
  This means that the Wimp always gets the menu click on the title bar before
  we open our menu so we can have the menus opening on the downward press of
  menu rather than its release as before. We can also stop the wimp getting
  the mouse button clicks at all. This seems to imply that the Wimp module is
  re-entrant, at least with Wimp_PointerInfo and Wimp_SendMessage. Don't know
  how far you could push it though!
Bug fix: When computer busy, menu click over title bar opens menu then
  closes it! (See above)
Discovered how to cancel an open menu (with Wimp_CreateMenu with r1 = -1) and
  this is used to cancel an open menu if menu is clicked twice over a title
  bar. Why oh why can't I call a SWI to ask the Wimp whether a menu is open
  and if so ask it for the address of the MenuBlock? This would make it all
  much simpler!
Bug fix: SaveBox icon is no longer filled so it now looks like the filer with
  textured window backgrounds in RISOCS 3.5.
Icons kept in sorted linked list (referred to by sprite name) and duplicates
  deleted. -alias <name> added to DirectorIcon to allow reference to icons by
  other than their sprite name.
Icons now created on a PollWord rather than a Null which makes them appear
  much quicker.
-time implemented for DirectorIcon. The length of the string is the length
  of the -text or the length of the -time string if no text is supplied
  Eg DirectorIcon !Director -time "%24:%MI:%SE" -text "00:00:00"
The time string is updated with ForceRedraw on the icon text to avoid the
  icon flickering in RISCOS 3.5. The text still flickers in a rather
  unsatisfactory manner.
The first item above the divider (in the UpMenus) in an automatically
  generated menu does not now have a sub-menu. There is no need for one since
  the contents of the directory is visible below the divider.
Bug fix: updating a menu from itself didn't work. (If a menu is returned to
  the stored list and a menu of that name already exists then the menu being
  returned is deleted. This means that if you update a menu from a itself, the
  new menu will appear as soon as you open it again (the old menu will persist
  as long as you keep it open).)
Bug fix: can't open the MenuMenu from the MenuMenu. (Was firstly because the
  displayed list was not being checked for opening a menu and second because
  the adjust click code looked at the menu handle and decided it hadn't changed
  so deleted the new menu.)
MenuMenu now opened when the File 'XXXX' item clicked on in filer menus (with
  any button).
"MenuMenu:Path" menu command added. Takes path, adds .<leaf> to it, sets up
  the Director system variables and opens the MenuMenu. A bit obscure maybe!
Method of discovering a window's taskhandle changed to use UserMessageAck as
  per 3-198. Avoids disturbing the task with a null event.
A WimpMessage defined for opening a menu which is a Wimp_Pointer block with a
  menu name on the end. This is used internally rather than the cumbersome way
  it was done before. Could also be used externally.
Adjust click on disc drive icons produces a directory menu of the path that
  would have been opened.
Wrote the !Help file. Changed file structure slightly.
BMGon and BMGoff changed to MenuProcessing <On|Off|1|0|Yes|No>
Memoriser added. A new extended menu type Memoriser: opens it. (NB I spell
  Memoriser with an 's' (English) not with a 'z' (American) as does Ben
  Summers!).
MemoriserItems command added to control the growth of the Memoriser menu.
Argument to -sub is now GSTransed as originally intended. You may have to
  change your MenuMenu changing -sub Path:<Director$CurrentDir> to
  -subPath:|<Director$CurrentDir>
-up added to Option. When used with -path will cause the sub-menu produced
  to have upmenus. Used with Memoriser.
ProcessKeys implemented.


 0.05 - 17Aug94
----------------

Commands and submenus are now parsed when run
	"Text" for normal command or sub-menu
	"Menu:Name" to bring up named menu
	"Save:Path" for save box of the given path (*)
	"Path:Path" for menu of that path (*)
	"Command:Text" runs the text as if it were a command
	"Quit:" Quits Director
	"Info:" Brings up Director's info window
	"OldMenu:" To open the last filtered menu (for getting pinboard menu)

	(*) If the path is missing eg "Path:" or "Save:" then it will use
	the path of the window that the pointer is over. If the path is
	present it is GS_Trans-ed before use.
Director no longer has any native menus. Icon bar menus changed to
  "IconMenu" and "IconClick".
If you click on an option which has no commands attached, but does have a
  sub-menu, Director will open the sub-menu
Save: implemented. Brings up a box with an icon like a large info icon in a
  filer window which you can drag to an application or pinboard. (The save box
  was much more difficult than I thought. On reading of the PRMs I though I'll
  just pretend to be the Filer (which is what I am doing really) and send a
  Message_DataLoad. This works fine sending data to applications. However It
  put the icons in really odd places on the pinboard so I worked out I had to
  send out another message (FilerSelected or something like that). Then the
  pinboard and applications worked but the filer didn't want to do anything
  with my DataLoads, and even worse it Acknowledged them! So I had to write a
  bit which discovered whether the task was the Filer and then do a DataSave,
  DataSaveAck and then use FilerAction to copy the files, reading the default
  state of the Verbose etc from the CMOS. Phew!)
DirectorDo Implemented
DirectorIcon implemented for definable icons. Director no longer has any
  inbuilt icons.


 0.04 - 15Aug94
----------------

Put scaled large icon in menu if small sprite not available
Keys added to menus by name
	Keys are case insensitive
	Can be modified by  (shift) ^ (ctrl) or ~ (alt)
	Keys are done by name, eg F1 or ^Insert (case insensitive)
		Home, Return, Ret, Enter, Backspace, BkSp, Space, Delete,
		Del, Esc, Print, Pnt, F1, F2, F3, F4, F5, F6, F7, F8, F9,
		Tab, Copy, Cpy, End, Left, Right, Down, Up, PageDown, PgDn,
		PageUp, PgUp, F10, F11, F12, Insert, Ins
	^Number keys don't work, ^KeyPad numbers should
	Haven't found any keys that work with ALT!
	A = a and A = a (ie keys are independent of CapsLock state)
If an option or a menu has a key definition it is added to the text with a
  space before it. If you want the items to line up then you will have to add
  spaces after the menu text. RISCOS 3.5 will line them up for you (most of
  the time!).
Bug fix: "Too Many Menus" error removed. If the Wimp ever allows more than 8
  menus then Director will be able to cope just fine. (Director allows that
  one error to pass un-reported after making the sub-menu).


 0.03 - 12Aug94
----------------

DirectorObey implemented. Cuts time to load 14k menu from 5.2 seconds to
  0.75 seconds (with cached directories)
System variable MenuText set to the text of the menu whenever a command
  option is chosen
-len implemented. Size of buffer allocated is the greater of the string
  supplied and the length so 'Option FillMeIn -len 0' is acceptable. However
  it doesn't set %0, use <MenuText> instead
These system variables are set whenever a sub menu is opened or an item is
  chosen off a menu
    Director$CurrentPath - full path of object
    Director$CurrentDir - directory object lives in
    Director$CurrentLeaf - leaf name of object
If the object is a root directory (eg ADFS::4.$ or Root:) then CurrentPath =
  CurrentDir = CurrentLeaf
"MenuMenu" opened when menu clicked on a path menu, otherwise the command is
  run as normal
Bug fix: menus always removed from displayed even when error occurs. Fixes
  Menu not found after choosing an option that caused an error
Bug fix: module always removed on task shutdown (stops error after choosing
  cancel on an error box, loading a script and then rmkilling the module).
Bug fix: number of parameters to Menu increased so can have aliased menus with
  keys!
Dash command to add a dashed line underneath the last option


 0.02 - 11Aug94
----------------

OS_GBPB uses a malloc-ed 4k block for much improved speed
-key made to work for hot keyed items
Hotkeys can now be added to "Menu" command via a -key, so a key can open a
  menu

TreeMenu takes 64k
Pinboard+ uses 18k (module) + 42k (menu)
Total 124k

DirectorMemory

Program code      10704
Workspace          3408
Heap              21456 (143 blocks)
-----------------------
Total             35568 Bytes

Saving 90k


 0.01 - 11Aug94
----------------

*DirectorMemory added to allow tracing of dynamic memory allocations and
  malloc, free and realloc changed to keep the totals updated.
Filters initialised by task instead of module.
BMG parsing added for BackMenus
Static menus kept in sorted linked list
-path items added for BMG so can now attach TreeMenus to BackMenus!
"Main" menu attached to icon bar icon on select
Filter on pinboard to intercept the menu opening the menu called "Pinboard"
Sprites in the file menus


 0.00 - 05Aug94
----------------

First version that even vaguely works
Does TreeMenu functions but not BackMenu yet!


note that mouse interceptors such as warfarin may need to be run before
director
