CompuServe Thread

Forum unknown · SoftwareDevelopment

C`Ssells

7 messages in this thread
#4712From: John FoustJan 9, 1986 10:28 AM
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.
#4814From: Bela Lubkin/SysopJan 10, 1986 5:22 PM
"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
#4814From: Bela Lubkin/SysopJan 10, 1986 5:22 PM
"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
#4850From: GARY SARFFJan 10, 1986 10:29 PM
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.
#4850From: GARY SARFFJan 10, 1986 10:29 PM
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.
#5030From: John FoustJan 12, 1986 9:14 PM
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.
#5030From: John FoustJan 12, 1986 9:14 PM
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.