Newsgroups: comp.unix.shell
Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!wuarchive!psuvax1!news
From: flee@cs.psu.edu (Felix Lee)
Subject: Re: separate the command language and interactive she
Message-ID: <-#8Gd-e*1@cs.psu.edu>
Sender: news@cs.psu.edu (Usenet)
Nntp-Posting-Host: dictionopolis.cs.psu.edu
Organization: Penn State Computer Science
References: <2749@optima.cs.arizona.edu>
Date: Sun, 5 May 91 06:16:25 GMT
Lines: 26

>  <command-line> ::= <command> <arg>* | "set" <var> = <arg>
>  <arg> ::= "-"<char>* | "$"<var> | <file>
>  path-complete <command> with "echo $path"
>  path-complete <file> with "pwd"
>  list-complete <var> with "variable-completion %s"

Let's see.  The syntax is naive: it doesn't do quoting of any sort, so
you can't do file completion on files with special characters in it.

How about completing filenames with variables embedded: "$HOME/$a/a".

How about history completion: expand things like "!$" and "!vi".

How about glob completion: expand things like "*" and "f*".

A more serious problem: the shell isn't the only thing that
wants/needs completion.  gdb, for example, wants to do completion.

Teaching the front-end about all this gets ugly.

The simplest way to handle completion is to have a communication
channel between the front-end and the current interactive process.
(Which immediately has two problems in Unix: What's the "current
interactive process"?  How do I talk to it?  (So how do we fix Unix?))
--
Felix Lee	flee@cs.psu.edu
