Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!watmath!clyde!floyd!harpo!seismo!hao!hplabs!sri-unix!v.wales@ucla-locus From: v.wales%ucla-locus@sri-unix.UUCP Newsgroups: net.unix-wizards Subject: Re: "set noglob" in "tset" Message-ID: <16490@sri-arpa.UUCP> Date: Tue, 7-Feb-84 12:32:45 EST Article-I.D.: sri-arpa.16490 Posted: Tue Feb 7 12:32:45 1984 Date-Received: Fri, 10-Feb-84 03:17:38 EST Lines: 33 From: Rich WalesPhil -- This is in response to your question about why "tset -s" doesn't gener- ate a "set noglob" as well as an "unset noglob". That is, why do you have to say set noglob eval `tset -sQ` Actually, "tset -s" does generate a "set noglob" (at least, some ver- sions do). However, a bug or misfeature in the C shell prevents this command from having the desired effect. The problem is that the builtin C-shell command "eval" parses its entire argument list before executing anything. In particular, "eval" performs any necessary wildcard expansion before trying to do anything. Hence, a "set noglob" included as part of the "eval" argument is not executed until after wildcard expansion in the TERMCAP value has already taken place. I suspect that the above-described behaviour of the "eval" command is too firmly entrenched in the inner recesses of the C shell to be fixed (though I would love to hear from anyone who knows otherwise); hence the evasive manoeuvre of sticking in a "set noglob" before the "eval". Another thing to note about "tset", by the way: I once fixed our "tset" so that it would output "\041" instead of "!", and "\140" instead of "`", in the TERMCAP string. It seems that the C shell insists these two characters are magic whether or not "noglob" is set. -- Rich