Store client's environment in terminal parameters, not server parameters.
* lisp/loadup.el: Don't load server. * lisp/ldefs-boot.el: Update. * lib-src/emacsclient.c (main): Send environment only when a new display is created. * lisp/server.el (server-save-buffers-kill-display): Add autoload cookie. Move stuff not specific to server into `save-buffers-kill-display'. * lisp/files.el (save-buffers-kill-display): New function. (ctl-x-map): Bind it to C-x C-c. * lisp/frame.el (terminal-getenv): New function. * lisp/international/mule-cmds.el (set-locale-environment): Use it. * lisp/frame.el (with-terminal-environment): New macro. * lisp/server.el (server-getenv, server-with-client-environment): Remove. (server-getenv-from, server-with-environment): New functions. (server-process-filter): Change syntax of environment variables. Put environment into terminal parameters, not client parameters. * lisp/term/rxvt.el: Don't require server. (rxvt-set-background-mode): Use terminal-getenv, not server-getenv. * lisp/term/x-win.el (x-initialize-window-system): Ditto. * lisp/term/xterm.el (terminal-init-xterm): Ditto. git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-443
This commit is contained in:
parent
e3362cebc3
commit
59e085e04d
10 changed files with 549 additions and 685 deletions
|
@ -695,26 +695,19 @@ To start the server in Emacs, type \"M-x server-start\".\n",
|
|||
fprintf (out, "-version %s ", VERSION);
|
||||
|
||||
/* Send over our environment. */
|
||||
{
|
||||
extern char **environ;
|
||||
int i;
|
||||
for (i = 0; environ[i]; i++)
|
||||
{
|
||||
char *name = xstrdup (environ[i]);
|
||||
char *value = strchr (name, '=');
|
||||
if (value && strlen (value) > 1)
|
||||
{
|
||||
*value++ = 0;
|
||||
fprintf (out, "-env ");
|
||||
quote_argument (name, out);
|
||||
fprintf (out, " ");
|
||||
quote_argument (value, out);
|
||||
fprintf (out, " ");
|
||||
fflush (out);
|
||||
}
|
||||
free (name);
|
||||
}
|
||||
}
|
||||
if (!current_frame)
|
||||
{
|
||||
extern char **environ;
|
||||
int i;
|
||||
for (i = 0; environ[i]; i++)
|
||||
{
|
||||
char *name = xstrdup (environ[i]);
|
||||
char *value = strchr (name, '=');
|
||||
fprintf (out, "-env ");
|
||||
quote_argument (environ[i], out);
|
||||
fprintf (out, " ");
|
||||
}
|
||||
}
|
||||
|
||||
retry:
|
||||
if (nowait)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue