Forum unknown
· SoftwareDevelopment
C`Ssells
7 messages in this thread
I got another CLI shell – this one is more full-blown than the last one I
posted. It's getting closer to the C Shell. I'd actually rather go an
alternate path than the C Shell's method of retrieving past command lines. I
use an IBM program called CED : it uses the arrow keys to up/down the last
command lines stored in its (configurable) sized queue… It also adds
right/left/ins/del cursor editting of the command line. If it allowed $foo
substitution, it would be perfect, but that's why I want to write/modify a
better CED for the Amiga.
"Allowed $foo substitution"? CED does have the SYNonym facility… look in the
documentation. It doesn't do full substitution anywhere in the command line,
but certainly for the 'verb' part. It also has %1..%9 arguments like MS-DOS
batch files. The commercial version (to be released RSN) does even more, but
I'm not sure what. What were you trying to say? – Bela
"Allowed $foo substitution"? CED does have the SYNonym facility… look in the
documentation. It doesn't do full substitution anywhere in the command line,
but certainly for the 'verb' part. It also has %1..%9 arguments like MS-DOS
batch files. The commercial version (to be released RSN) does even more, but
I'm not sure what. What were you trying to say? – Bela
On my system at work we can also use up/down arrows to scroll through
previous commands and the left right arrows to edit the line, the cursor can
be anywhere on the line when you push return to invoke the line. Also
something really nice is that you can type in a few characters, push
control-F (FIND) and the shell will search backwards through the list for
previous commands that start with those characters. Repeated CTRL-F's
retrieve each matching command in reverse sequence. Also command lines can
be up to 1024 characters long and they scroll back and forth as you type on a
single horizontal line, they don't wrap like they do on the Amiga which I
find particularly ugly.
Also environment variables (Wicat calls them logical names) can appear
anywhere on the command line and they are translated by the shell before the
command is invoked. Logical names may in turn translate into other logical
names that require translation, ad infinitum.
Also something joe kaisler and I and others were talking about is the
horrible mess that CLI has with I/O redirection, i.e. each program does it
itself. instead of the shell doing it, the shell should scan the command line
after all translations and set up the I/O direction itself and then take the
I/O redirections OFF of the command line so that the users program does not
even see them, the way Unix does. AmigaDos utilities look like they were
written by 20 different people, they all want something different and work
differently. It will probably be up to the shell to clean this mess up.
On my system at work we can also use up/down arrows to scroll through
previous commands and the left right arrows to edit the line, the cursor can
be anywhere on the line when you push return to invoke the line. Also
something really nice is that you can type in a few characters, push
control-F (FIND) and the shell will search backwards through the list for
previous commands that start with those characters. Repeated CTRL-F's
retrieve each matching command in reverse sequence. Also command lines can
be up to 1024 characters long and they scroll back and forth as you type on a
single horizontal line, they don't wrap like they do on the Amiga which I
find particularly ugly.
Also environment variables (Wicat calls them logical names) can appear
anywhere on the command line and they are translated by the shell before the
command is invoked. Logical names may in turn translate into other logical
names that require translation, ad infinitum.
Also something joe kaisler and I and others were talking about is the
horrible mess that CLI has with I/O redirection, i.e. each program does it
itself. instead of the shell doing it, the shell should scan the command line
after all translations and set up the I/O direction itself and then take the
I/O redirections OFF of the command line so that the users program does not
even see them, the way Unix does. AmigaDos utilities look like they were
written by 20 different people, they all want something different and work
differently. It will probably be up to the shell to clean this mess up.
Thanks for your comments, Gary and Bela. Bela: I use CED pretty heavily, and
use SYN most often. I don't remember the context of my '$foo' remark. Anyway,
an Amiga shell needs it. I will be posting a better shell, soon, unless
someone else has already posted the Usenet MyCli. (haven't DL'd yet. What
version of public domain CED do you have? Gary: I agree about the CLI
problems, and the screwed up!x:ure of the CLI commands. All different, all
obscure. Were you saying the '> prt:' I type is passed to the program in
argv[]? ??? I've always been a bit miffed about Lattice changing argv[0] to
"c", while we're at it. I remember seeing a shell of some sort that had the
CTRL/F you mentioned. I think we could come up with a list of good features
for a shell. Any one care to start a list? Another general question – how
should we handle environment variables and paths? Should our shell constantly
search logged drives with valid paths, and remember any possible
programs/commands there? Boy, I hate to kludge up a nice OS like AmigaDOS
CLI,but these things have to be done. 🙂 I've had more troubles with CLI /
Workbench than anything else. Some documentation would hexxx help. Related
question for this thread: How should Workbench level tools accept command
lines? How would you implement 'grep' from the Workbench? 'more'? A print
spooler? A RAM: disk icon that works? I'd like to get the name of a most
recently selected icon, but have trouble with workbenchbase.h, but that;'s
another story.
Thanks for your comments, Gary and Bela. Bela: I use CED pretty heavily, and
use SYN most often. I don't remember the context of my '$foo' remark. Anyway,
an Amiga shell needs it. I will be posting a better shell, soon, unless
someone else has already posted the Usenet MyCli. (haven't DL'd yet. What
version of public domain CED do you have? Gary: I agree about the CLI
problems, and the screwed up!x:ure of the CLI commands. All different, all
obscure. Were you saying the '> prt:' I type is passed to the program in
argv[]? ??? I've always been a bit miffed about Lattice changing argv[0] to
"c", while we're at it. I remember seeing a shell of some sort that had the
CTRL/F you mentioned. I think we could come up with a list of good features
for a shell. Any one care to start a list? Another general question – how
should we handle environment variables and paths? Should our shell constantly
search logged drives with valid paths, and remember any possible
programs/commands there? Boy, I hate to kludge up a nice OS like AmigaDOS
CLI,but these things have to be done. 🙂 I've had more troubles with CLI /
Workbench than anything else. Some documentation would hexxx help. Related
question for this thread: How should Workbench level tools accept command
lines? How would you implement 'grep' from the Workbench? 'more'? A print
spooler? A RAM: disk icon that works? I'd like to get the name of a most
recently selected icon, but have trouble with workbenchbase.h, but that;'s
another story.