| Seems that whereas in 4DOS a caret was used to separate commands in
| a long alias, that's now done with the ampersand, is that right? If
| so, and if the answer isn't too complecated, I'm curious as to why
| the change. Also, since the ampersand had lots of uses before, I'm
| wondering if the above change has impacted any of the other uses of
| the ampersand.
Since COMMAND.COM did not have such a mechanism, when Microsoft followed in
JPsoft's footsteps in CMD.EXE, they used a different character for the same
purpose, to wit, the ampersand, hence when JPsoft introduced 4NT, it was
made the DEFAULT command separator. But JPsoft software is always more
flexible. There was already in 4DOS, and surviving to this day, a method to
specify your command separator symbolically ( %+ ) and two methods to change
the definition to any arbitrary character (instead of the default): the /C
option of the SETDOS command, and the CommandSep directive in the .INI file
(now preferrably set using the OPTION dialog). The first method (using %+)
allows you to write batch files and aliases that work on anyone's system,
regardless of their choice of command separator. The other two methods allow
you to make to select the same special characters you are already used from
4DOS, without the need to edit all your batch files. I as well as many other
TCC users continue to use the 4DOS defaults for ParameterChar and
EscapeChar, as well as for CommandSep.
| Geez, I wish there was a 'moving from 4DOS to TCC' doc.
| But that's what I get for being so far behind the times.
There was, in early versions of 4NT. Besides some DOS-only commands,
directives, environment functions and internal variables, which became
obsolete, the biggest issue is the different default mechanism for piping:
the standard pipe, specified by the vertical bar | symbol, the right side of
the pipe is performed in a separate instance of the command interpreter (if
you pipe the output of a pipe to another command, you'll have 3 concurrent
instances, etc.). Environment variables are inherited by the right side of a
pipe, but variables created or modified on the right side are not passed
back to the left. In the most recent versions there is a new symbol |! for
the 4DOS-style pipe, formally known as "in process pipe". That's about it!