summaryrefslogtreecommitdiff
path: root/lib-src/emacsclient.c
diff options
context:
space:
mode:
authorKaroly Lorentey <lorentey@elte.hu>2005-11-19 19:17:56 +0000
committerKaroly Lorentey <lorentey@elte.hu>2005-11-19 19:17:56 +0000
commit59e085e04d44b0331620b55a64eb94bf99cf81b1 (patch)
treed6c04a67e99ec5ef0229e23b6303596cb1c555b6 /lib-src/emacsclient.c
parente3362cebc3485806379cac1986b901f3da20d59d (diff)
downloademacs-59e085e04d44b0331620b55a64eb94bf99cf81b1.tar.gz
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
Diffstat (limited to 'lib-src/emacsclient.c')
-rw-r--r--lib-src/emacsclient.c33
1 files changed, 13 insertions, 20 deletions
diff --git a/lib-src/emacsclient.c b/lib-src/emacsclient.c
index 85415eba44a..b6d33c9c2c2 100644
--- a/lib-src/emacsclient.c
+++ b/lib-src/emacsclient.c
@@ -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)