diff README.multi-tty @ 83014:f5cadabb36dd

Support for opening X frames from a tty session. lisp/cus-face.el (custom-declare-face): Handle multiple concurrent display methods correctly. lisp/faces.el (x-create-frame-with-faces): Set the window-system frame parameter instead of frame-creation-function. (tty-create-frame-with-faces): Ditto. lisp/frame.el (frame-creation-function): Removed. (frame-creation-function-alist): New variable. (frame-initialize): Use initial-window-system instead of window-system. Add window-system parameter to initial-frame-alist. Removed tty initialization, it was moved to frame-creation-function-alist. (frame-notice-user-settings): Use initial-window-system instead of window-system. (make-frame-on-display): Make sure term/x-win is loaded. Added window-system parameter for make-frame. (make-frame-on-tty): Removed unnecessary autoload declaration. Added window-system parameter for make-frame. (make-frame): Use frame-creation-function-alist to determine the function to use depending on the specified window system. (select-frame-by-name): Use the window-system function instead of the variable. lisp/startup.el (window-system): New variable (previously built-in, now frame-local). (normal-top-level, command-line): Use initial-window-system instead of window-system. lisp/loadup.el: Load startup.el before faces.el, for the window-system variable. lisp/term/x-win.el: Check for the x-create-frame function instead of window-system to see if X is available. Don't exit Emacs if the display can not be opened when X is not the initial display method. Set up frame-creation-function-alist instead of frame-creation-function. Provide the x-win feature. src/dispnew.c (Vwindow_system): Renamed to Vinitial_window_system. (init_display, syms_of_display): Updated to use Vinitial_window_system instead of Vwindow_system. src/emacs.c (shut_down_emacs): Updated to use Vinitial_window_system instead of Vwindow_system. src/keyboard.c (Fset_input_mode): Call reset_all_sys_modes, not reset_sys_modes. Ditto for init_all_sys_modes. Process the quit parameter correctly. src/sysdep.c (init_sys_modes, reset_sys_modes): Unconditionally set up the terminal. We don't get called if there is nothing to do anymore. (sys_select): Use Vinitial_window_system, not Vwindow_system. src/window.h (Vwindow_system): Renamed to Vinitial_window_system. src/xfns.c (Fx_create_frame): Don't check_x. We initialize it anyway. (x_display_info_for_name, Fx_open_connection): Don't look at Vinitial_window_system. git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-54
author Karoly Lorentey <lorentey@elte.hu>
date Sun, 11 Jan 2004 21:59:40 +0000
parents e77d1a63471b
children 1465425fe2d3
line wrap: on
line diff
--- a/README.multi-tty	Sun Jan 11 11:26:00 2004 +0000
+++ b/README.multi-tty	Sun Jan 11 21:59:40 2004 +0000
@@ -2,9 +2,9 @@
 GOAL
 ----
 
-The ultimate goal of this branch is to implement support for opening
-multiple, different tty devices and simultaneous X and tty frames from
-a single Emacs session.
+The goal of this branch is to implement support for opening multiple,
+different tty devices and simultaneous X and tty frames from a single
+Emacs session.
 
 Some use cases:
 
@@ -27,7 +27,7 @@
 
 I'm Károly Lőrentey.  My address: lorentey@elte.hu.
 
-Patches or suggestions are welcome!
+Comments, bug reports, suggestions and patches are welcome!
 
 Retrieving the latest version of the branch:
 
@@ -46,9 +46,13 @@
 ------
 
 Multi-tty support is stable, I think most of the problems were fixed.
-(It still needs testing on other architectures, though.)  Please let
-me know if you find any bugs in it.  Emacsclient has been extended to
-support opening a new terminal frame.
+(It still needs testing on other architectures, though.)  Simultaneous
+X and tty frame support works fine, although there are some small
+issues.  Emacsclient has been extended to support opening a new
+terminal frame.
+
+
+Please let me know if you find any bugs in this branch.
 
 To try it out, compile and run the multi-tty branch with the following
 commands:
@@ -57,7 +61,7 @@
 	cd +build
 	../configure
 	make bootstrap
-	src/emacs -nw
+	src/emacs -nw		# You can also try without -nw
 	M-x server-start
 
 and then (from a shell prompt on another terminal) start emacsclient
@@ -77,7 +81,7 @@
 
 This is work in progress, and probably full of bugs.  You should
 always run emacs from gdb, so that you'll have a live instance to
-debug if something goes wrong.  Please send me your reports.
+debug if something goes wrong.  Please send me your bug reports.
 
 Problems:
 
@@ -85,39 +89,48 @@
 	  devices.  Also, there is no way to suspend emacsclient. This
 	  will be fixed.
 
-	* X support is (I hope) working, but at the moment there are
-	  problems with simultaneous X and tty devices, so don't do
-	  that - start a separate Emacs with -nw and run the server
-	  there.
-
 	* Mac, Windows and DOS support is broken, probably doesn't
 	  even compile -- this will be solved later.
 
-	* Only tested on my GNU/Linux box.
+	* Only tested on my GNU/Linux box and on Solaris 8.
 
 NEWS
 ----
 
 For the NEWS file:
 
-** Support for multiple terminal devices has been added.  You can
-   specify a terminal device (`tty' parameter) and a terminal type
-   (`tty-type' parameter) to `make-terminal-frame'. `tty' must be a
-   terminal device created by the updated emacsclient, or there will
-   be problems with terminal input and window resizes.
+** Support for multiple terminal devices has been added.
+
+*** You can specify a terminal device (`tty' parameter) and a terminal
+    type (`tty-type' parameter) to `make-terminal-frame'.
 
-   You can test for the presence of multiple terminal support by
-   testing for the `multi-tty' feature.
+*** You can test for the presence of multiple terminal support by
+    testing for the `multi-tty' feature.
+
+*** Emacsclient has been extended to support opening a new terminal
+    frame (see -t option).
+
+*** A make-frame-on-tty function has been added to make it easier to
+    create frames on new terminals.
 
-** A make-frame-on-tty function has been added to make it easier to
-   create frames on new terminals.
+*** New functions: frame-tty-name, frame-tty-type for accessing
+    terminal parameters, and delete-tty for closing the terminal
+    device.
+
+*** talk.el has been extended for multiple tty support.
+
 
-** New functions: frame-tty-name, frame-tty-type for accessing
-   terminal parameters, and delete-tty for closing the terminal
-   device.
+** Support for simultaneous graphical and terminal frames has been
+   added.
+
+*** The function `make-frame-on-display' now works during a terminal
+    session, and `make-frame-on-tty' works during a graphical session.
 
-** Emacsclient has been extended to support opening a new terminal
-   frame.
+*** The `window-system' variable has been made frame-local.
+
+*** The new `initial-window-system' variable contains the
+    `window-system' value for the first frame.
+
 
 CHANGELOG
 ---------
@@ -127,11 +140,13 @@
 THINGS TO DO
 ------------
 
-** Fix color handling during X+tty combo sessions.  (It seems that tty
+** Fix color handling during tty+X combo sessions.  (It seems that tty
    sessions automatically convert the face colors to terminal colors
    when the face is loaded.  This conversion must happen instead on
    the fly in write_glyphs, which might be problematic, as color
    approximation is currently done in lisp (term/tty-colors.el).)
+   (Update: hm, colors seem to work fine if I start emacs with -nw and
+   then create an X frame.  Maybe it's just a small buglet somewhere.)
 
 ** Fix interactive use of temacs.  There are face-related SEGVs, most
    likely because of changes in realize_default_face, realize_face.
@@ -139,17 +154,12 @@
 ** Very strange bug: visible-bell does not work on secondary
    terminals.  This might be something xterm (konsole) specific.
 
-** Allow opening an X session after -nw.
-
 ** Find out the best way to support suspending Emacs with multiple
    ttys.  My guess: disable it on the controlling tty, but from other
    ttys pass it on to emacsclient somehow.  (It is (I hope) trivial to
    extend emacsclient to handle suspend/resume.  A `kill -STOP' almost
    works right now.)
 
-** Exiting Emacs while there are emacsclient frames doesn't restore the
-   ttys to their default states.
-
 ** Move baud_rate to struct display.
 
 ** Implement support for starting an interactive Emacs session without
@@ -187,6 +197,8 @@
    single_kboard mode, and is not easily solvable.  The best thing to
    do is to simply refuse to create a tty frame of type `eterm'.
 
+** Maybe standard-display-table should be display-local.
+
 DIARY OF CHANGES
 ----------------
 
@@ -545,4 +557,14 @@
    Note that the above strace output seems to be an unrelated but
    similar bug.  I think that is now fixed.)
 
+-- Exiting Emacs while there are emacsclient frames doesn't restore the
+   ttys to their default states.
+
+   (This seems to be fixed by some previous change.)
+
+-- Allow opening an X session after -nw.
+
+   (Done.)
+
+
 ;;; arch-tag: 8da1619e-2e79-41a8-9ac9-a0485daad17d