From: Chong Yidong Date: Fri, 20 Apr 2012 10:37:57 +0000 (+0800) Subject: Fix emacsclient/server behavior under --without-x. X-Git-Tag: emacs-24.2.90~471^2~334 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=2d0e8e614a6744a6a33c6b519f20359802e75c2b;p=emacs.git Fix emacsclient/server behavior under --without-x. * lib-src/emacsclient.c (main): Send -tty to Emacs under more circumstanced (Bug#8314). * lisp/server.el (server-process-filter): Only try to open a window system frame if compiled with graphical support (Bug#8314). Fixes: debbugs:11102 --- diff --git a/lib-src/ChangeLog b/lib-src/ChangeLog index c76303d8fa2..fc6d905cfb2 100644 --- a/lib-src/ChangeLog +++ b/lib-src/ChangeLog @@ -2,6 +2,7 @@ * emacsclient.c (decode_options): Move -t -n corner case handling into server.el (Bug#11102). + (main): Send -tty to Emacs under more circumstanced (Bug#8314). 2012-04-18 Paul Eggert diff --git a/lib-src/emacsclient.c b/lib-src/emacsclient.c index 48b4384d487..ea55398306b 100644 --- a/lib-src/emacsclient.c +++ b/lib-src/emacsclient.c @@ -1658,10 +1658,10 @@ main (int argc, char **argv) send_to_emacs (emacs_socket, " "); } - /* If using the current frame, send tty information to Emacs anyway. - In daemon mode, Emacs may need to occupy this tty if no other - frame is available. */ - if (tty || (current_frame && !eval)) + /* Unless we are certain we don't want to occupy the tty, send our + tty information to Emacs. For example, in daemon mode Emacs may + need to occupy this tty if no other frame is available. */ + if (!current_frame || !eval) { const char *tty_type, *tty_name; diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 947ae6f17f6..58f646251d0 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -4,6 +4,8 @@ is a string and there are no files to open (Bug#2825). (server-create-window-system-frame, server-create-tty-frame): Don't switch buffers here. + (server-process-filter): Only try to open a window system frame if + compiled with graphical support (Bug#8314). 2012-04-20 Dan Nicolaescu diff --git a/lisp/server.el b/lisp/server.el index f9c8ea5c577..1e2f458ac9c 100644 --- a/lisp/server.el +++ b/lisp/server.el @@ -1076,8 +1076,9 @@ The following commands are accepted by the client: ;; -window-system: Open a new X frame. (`"-window-system" - (setq dontkill t) - (setq tty-name 'window-system)) + (if (fboundp 'x-create-frame) + (setq dontkill t + tty-name 'window-system))) ;; -resume: Resume a suspended tty frame. (`"-resume" @@ -1105,7 +1106,8 @@ The following commands are accepted by the client: (setq dontkill t) (pop args-left)) - ;; -tty DEVICE-NAME TYPE: Open a new tty frame at the client. + ;; -tty DEVICE-NAME TYPE: Open a new tty frame. + ;; (But if we see -window-system later, use that.) (`"-tty" (setq tty-name (pop args-left) tty-type (pop args-left)