On 25 января 2009 02:26:43 Bart Schaefer wrote: > On Jan 24, 5:38pm, Peter Stephenson wrote: > } Subject: Re: sourcing a sh file in zsh > } > } You need quotes for defining functions in an > } emulation, or to creating a separate file. > > Yeah, that was one of my reasons for pondering making it a reserved > word or the like. > If you are defining function in a *zsh* script, why not simply define it as *zsh* function? While I see usage cases for sourcing file under specific emulation (and probably making it "sticky" for functions defined in it), I really do not see why would you want to define a csh function in a zsh script. > } Hmm... I wonder if we should allow code from stdin > > That'd at least need another option, otherwise "emulate -E" would > always read standard input, which would be bad if it appeared in a > script and started evaluating whatever was written at it. > > } for things like: > } > } emulate -LRE sh < } function foo { > } ... > } } > } HERE > > You can always do > > emulate -LRE sh $(<<-\HERE > function foo { > ... > } > HERE) > Actually you can always do foo=$(<<-\HERE function foo { ... } HERE) emulate -c sh $foo > I'm not sure offhand if you could double-quote all of that, easily > ... > > } There's still the issue of retaining the emulation mode for > functions } defined in that mode; I agree we really ought to tackle > that to make } the new functionality properly useful. I expect Bart > has ideas on the } next step; how far will we need to go? > > I refer you to workers/26336 where Phil makes some comments about how > he'd modify the wordcode to handle this. > Assuming this is supported by zsh internals it is trivial to add option to emulate to set "sticky" bit during code evaluation.