> grep foo -- *
>
> will still not work because rc's globbing also fears zero and returns the
> pattern instead of an empty list if there are no matches.
i used to think that was a misfeature.
in college i wrote a shell that elided
failed globs in the argument list.
the problem is that people assume that
failed globs generate an error, e.g.
cat «glob pattern» >[2=] || echo cat failed
i didn't redesign the system, so that would
hang with my shell.
if we follow your redesign of unix, we
would never get an error because
cat *
does nothing and wouldn't be an error
at all. one would need to write
x = *
if(~ $#* 0)
echo cat failed
if not
cat $x
that seems less attractive to me.
- erik