New package. This will eventually replace the CommandTool.
Critical changes
This still needs some polishing, but it looks close enough that I am willing to let folks try it out. Commander-Suite.df exports CommanderWorld.pcr and RawViewers.cm, which you should be able to use to start a RawViewers world that uses the new Commander and PFS. Bring these into a directory of your choice, and then to a unix shell, type
CedarBasement CommanderWorld.pcr
When (if) you get a prompt "Commander % ", type
RawViewers
When things settle down, click "Cmd", and away you go! You should be all set to say "Clock", "QFind", and whatever other things have proper load and install files in SharedCommands.
Notes:
The CommanderCommandsDoc is just a copy of the short documentation you get from "?". This will get fleshed out as time allows.
CommanderDoc does not have too many lies, but probably leaves something out.
Use $foo instead of &foo to insert properties into interpreted command lines.
The $n construct for command line arguments is intended to work, but it doesn't.
The "rose" command may be used to provide a new name for an old command. I plan to call this command "Synonym" in the future, unless it turns out "rose" is more popular. The etymology for "rose" is Shakespearian: "A rose by any oher name ..."
I/O redirection seems to function just fine, except ">>" seems not to work (apparently PFS.StreamOpen[..., append] does not set the index to the file length???).
Packages that lack load files will need to be installed "by hand".
The registered commands live in a flat name space. I find that switching to this was a great relief! So far I have not run into any major drawbacks to working this way.
Search rules are also global.
You can abbreviate commands; the short form gets registered as an abbreviation for the full command; which is a design decision of dubious merit.
The "@" character means nothing special to the Commander. If you want it as a synonym for "Source", just say
rose @ Source
These characters are used as break characters in CommanderOps.GetCmdToken, and so do not need surrounding whitespace to count as tokens:
@ | ( , ) { ; }
These were deemed as characters highly unlikely to occur in filenames, and potentially useful as command names.
These characters are significant to command line interpretation:
< | > $ ;