(decode_options): Pass --display implicitly if -c
authorStefan Monnier <monnier@iro.umontreal.ca>
Fri, 8 Feb 2008 15:25:58 +0000 (15:25 +0000)
committerStefan Monnier <monnier@iro.umontreal.ca>
Fri, 8 Feb 2008 15:25:58 +0000 (15:25 +0000)
is specified.  Only set tty if -t or -c is specified.

lib-src/ChangeLog
lib-src/emacsclient.c

index bc36dcb..b7d362e 100644 (file)
@@ -1,3 +1,8 @@
+2008-02-08  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * emacsclient.c (decode_options): Pass --display implicitly if -c
+       is specified.  Only set tty if -t or -c is specified.
+
 2008-02-04  Jason Rumney  <jasonr@gnu.org>
 
        * makefile.w32-in (lisp1): Use (), not {}.
index 707be43..cfa5fa0 100644 (file)
@@ -480,15 +480,6 @@ decode_options (argc, argv)
 {
   alternate_editor = egetenv ("ALTERNATE_EDITOR");
 
-  /* We used to set `display' to $DISPLAY by default, but this changed the
-     default behavior and is sometimes inconvenient.  So instead of forcing
-     users to say "--display ''" when they want to use Emacs's existing tty
-     or display connection, we force them to use "--display $DISPLAY" if
-     they want Emacs to connect to their current display.  */
-#if 0
-  display = egetenv ("DISPLAY");
-#endif
-
   while (1)
     {
       int opt = getopt_long (argc, argv,
@@ -566,13 +557,24 @@ decode_options (argc, argv)
        }
     }
 
+  /* We used to set `display' to $DISPLAY by default, but this changed the
+     default behavior and is sometimes inconvenient.  So instead of forcing
+     users to say "--display ''" when they want to use Emacs's existing tty
+     or display connection, we force them to use "--display $DISPLAY" if
+     they want Emacs to connect to their current display.
+     -c still implicitly passes --display $DISPLAY unless -t was specified
+     so as to try and mimick the behavior of `emacs' which either uses
+     the current tty or the current $DISPLAY.  */
+  if (!current_frame && !tty)
+    display = egetenv ("DISPLAY");
+
   if (display && strlen (display) == 0)
     display = NULL;
 
   if (!tty && display)
     window_system = 1;
 #if !defined (WINDOWSNT) && !defined (HAVE_CARBON)
-  else
+  else if (!current_frame)
     tty = 1;
 #endif