# HG changeset patch # User Jim Blandy # Date 680585244 0 # Node ID 1ad871406b124aad4e0c55778a6f115d0dc20e98 # Parent 5b180834eacf5347025ffb9f142a5281763ca4d2 *** empty log message *** diff -r 5b180834eacf -r 1ad871406b12 lisp/terminal.el --- a/lisp/terminal.el Fri Jul 26 23:31:34 1991 +0000 +++ b/lisp/terminal.el Sat Jul 27 03:27:24 1991 +0000 @@ -975,9 +975,10 @@ (progn (goto-char (point-max)) (recenter -1))))))) -(defvar te-stty-string "stty -nl new dec echo" - "Command string (to be interpreted by \"sh\") which sets the modes -of the virtual terminal to be appropriate for interactive use.") +(defvar te-stty-string "stty -nl dec echo" + "Shell command to set terminal modes for terminal emulator.") +;; This used to have `new' in it, but that loses outside BSD +;; and it's apparently not needed in BSD. (defvar explicit-shell-file-name nil "*If non-nil, is file name to use for explicitly requested inferior shell.") diff -r 5b180834eacf -r 1ad871406b12 src/frame.h --- a/src/frame.h Fri Jul 26 23:31:34 1991 +0000 +++ b/src/frame.h Sat Jul 27 03:27:24 1991 +0000 @@ -70,6 +70,12 @@ /* Name of this screen: a Lisp string. */ Lisp_Object name; + /* The screen which should recieve keystrokes that occur in this + screen. This is usually the screen itself, but if the screen is + minibufferless, this points to the minibuffer screen when it is + active. */ + Lisp_Object focus_screen; + /* This screen's root window. Every screen has one. If the screen has only a minibuffer window, this is it. Otherwise, if the screen has a minibuffer window, this is its sibling. */ @@ -174,12 +180,14 @@ #define SCREEN_DELETEN_COST(s) (s)->delete_n_lines_cost #define SCREEN_MESSAGE_BUF(s) (s)->message_buf #define SCREEN_SCROLL_BOTTOM_VPOS(s) (s)->scroll_bottom_vpos +#define SCREEN_FOCUS_SCREEN(s) (s)->focus_screen #define CHECK_SCREEN(x, i) \ { if (XTYPE ((x)) != Lisp_Screen) x = wrong_type_argument (Qscreenp, (x)); } extern Lisp_Object Qscreenp; extern struct screen *selected_screen; +extern struct screen *last_nonminibuf_screen; extern struct screen *make_terminal_screen (); extern struct screen *make_screen (); @@ -198,6 +206,7 @@ #define SCREEN_PTR int extern int selected_screen; +#define last_nonminibuf_screen selected_screen #define XSCREEN(s) selected_screen #define WINDOW_SCREEN(w) selected_screen @@ -228,7 +237,9 @@ #define SCREEN_INSERTN_COST(screen) insert_n_lines_cost #define SCREEN_DELETEN_COST(screen) delete_n_lines_cost #define SCREEN_MESSAGE_BUF(s) message_buf -#define SCREEN_SCROLL_BOTTOM_VPOS scroll_bottom_vpos; +#define SCREEN_SCROLL_BOTTOM_VPOS(s) scroll_bottom_vpos + +#define CHECK_SCREEN(x, i) { ; } extern int screen_width, screen_height; extern int cursX, cursY; diff -r 5b180834eacf -r 1ad871406b12 src/termhooks.h --- a/src/termhooks.h Fri Jul 26 23:31:34 1991 +0000 +++ b/src/termhooks.h Sat Jul 27 03:27:24 1991 +0000 @@ -63,12 +63,10 @@ button releases. */ extern int (*mouse_tracking_enable_hook) ( /* int ENABLE */ ); -/* When reading from a minibuffer in a different screen, Emacs wants - to shift the highlight from the selected screen to the minibuffer's - screen; under X, this means it lies about where the focus is. - This hook tells the window system code to re-decide where to put - the highlight. */ -extern void (*screen_rehighlight_hook) ( /* SCREEN_PTR s */ ); +/* When a screen's focus redirection is changed, this hook tells the + window system code to re-decide where to put the highlight. Under + X, this means that the system lies about where the focus is. */ +extern void (*screen_rehighlight_hook) ( /* void */ ); /* If nonzero, send all terminal output characters to this stream also. */