From: <Val...@vt...> - 2002-10-26 21:49:00
|
On Tue, 22 Oct 2002 18:01:00 EDT, Najati Imam <nr...@uk...> said: > Yeah, its the seperation between the shell and the term that make this > most difficult, I think. That seperation is also one of the main > benefits of the current system. Hacking all shells with the right hooks > to provide all the info we need and then making all the changes to any > term would be one sizable undertaking. Oh well :-( Hmm.. see "Cycle of Reincarnation" in the Jargon File. ;) Bit of history - under Multics, the "shell" would only read commands, and did NOT do globbing - that was done *in the program*. In fact, *reading* the command string was done by the program. This allowed coolness like being able to type "ftp foo*", and foo* would be read/globbed by the FTP command, which could then provide "smart" completion and globbing (so 'foo<tab>' could be expanded as a hostname rather than a filename, etc. The "copy" command could apply the knowledge that a given parameter *had* to be a directory rather than a flat file, etc etc. The major reasons this wasn't implemented in Unix shells are because you end up with a lot of globbing/prompting code in every binary (and this was before shared library support happened), and the fact it makes command pipelining incredibly difficult to do - is that | a inter-command pipe char, or is it part of a tr '|' ';' sequence? It's hard to figure out when the tr command is reading/parsing the command string already, and may not want to hand the | and ; back to the shell.. ;) -- Valdis Kletnieks Computer Systems Senior Engineer Virginia Tech |