v.wales%ucla-locus@sri-unix.UUCP (02/07/84)
From: Rich Wales <v.wales@ucla-locus> Phil -- 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 <v.wales@UCLA-LOCUS>
cak@Purdue.ARPA (02/07/84)
From: Christopher A Kent <cak@Purdue.ARPA> Ah, but set nonomatch fixes the !` problems (or at least it used to...) What a hack. Cheers, chris ----------