Re: [Nedit-develop] Calling external programs speed
Brought to you by:
tringali
From: Volker K. <lis...@pa...> - 2004-01-09 10:11:47
|
> I agree, and I did it a while ago. What I didn't add what the code to > translate NEdit's preferences, so it's not ready yet. You said you had some change in the works, but didn't say what the change was (I think, who cares). > I don't think however that NEdit should call csh in the way you > mentioned. It might surprise users a lot because there might be some > initialization work not done. I'd leave it to you to decide how/whether to change the default. Some short words with the X res help and the FAQ would be in order though, which mention - calling csh as shell runs all the shell's startup scripts (slow), but gives all user aliases - calling csh -f would be fast but no aliases - spawning background programs requires >/dev/null 2>&1 & for csh and doesn't work with sh (with sh, nedit waits for background process to complete) - for sh users to use their aliases requires calling bash --login (or whatever for other sh) - neither csh -f nor bash --login are currently possible The cludge with the external script only serves to call csh with -f. Allowing the nedit.shell resource to have arguments for the shell would cover all cases above. > OTOH I seem to remember that someone posted a solution for csh to skip > the initialization files from within these files. > if ($?prompt) then > endif Forget it, by far most of the time of ~/.cshrc & Co is spent setting up the environment variables and all the aliases. You need to set env vars for non-interactive shells because most software which does remote logins runs a login-shell sh and a non-login $SHELL. Do you want to use your aliases from shells called by nedit? Not much left to skip by $prompt then (assuming nedit calls a non-interactive shell). But when I want to call shell->sort I definitely don't want all that! Major restructuring of csh.cshrc etc isn't going to happen for Linux distros either. sh and csh are not exchangable from the point of view of apps like nedit, you need to be aware of their characteristics. If you use csh by default, you have to allow for a possibility to skip all the startup stuff. That's how sh behaves. For this reason apps call the system shell, /bin/sh, and not the user shell, $SHELL, to have a common $SHELL-independent baseline to work from (or call execve() or whatever it is). Only nedit is different. :) Volker -- Volker Kuhlmann is possibly list0570 with the domain in header http://volker.dnsalias.net/ Please do not CC list postings to me. |