diff options
| author | Karoly Lorentey | 2003-12-27 10:00:19 +0000 |
|---|---|---|
| committer | Karoly Lorentey | 2003-12-27 10:00:19 +0000 |
| commit | fca177d467f0264cab4256a67175fc52fba42f2e (patch) | |
| tree | aac26ce7368d3cffc254b50f4474b03430f025ee /src/frame.c | |
| parent | 6548cf002c635f6799e2e127393128842be35632 (diff) | |
| download | emacs-fca177d467f0264cab4256a67175fc52fba42f2e.tar.gz emacs-fca177d467f0264cab4256a67175fc52fba42f2e.zip | |
Fully eliminated global tty state variables.
lib-src/emacsclient.c (main.c): Fix error message.
lisp/frame.el (make-frame-on-tty): New function.
lisp/server.el (server-process-filter): Notify emacsclient if there
was on error during evaluation.
src/cm.c: Fix remaining cases of direct Wcm references.
src/dispextern.h: Updated prototypes.
src/dispnew.c (Fredraw_frame): Fix set_terminal_modes call.
(init_display): Remove reference to meta_key.
src/frame.c (make_terminal_frame): Renamed first parameter to
tty_name. Call term_init before creating the frame.
(Fmake_terminal_frame): Look up the `tty' and `tty-type' frame
parameters from the currently selected terminal before the global
default.
(Fdelete_frame): Make sure that the new selected frame is live.
src/keyboard.c (meta_key): Moved to struct tty_output.
(read_avail_input): Fix C syntax. Update references to meta_key.
(Fsuspend_emacs): pass current tty to init_sys_modes via
record_unwind_protect.
(Fset_input_mode): Update references to meta_key.
(Fcurrent_input_mode): Ditto.
src/sysdep.c (init_sys_modes): Updated old_tty and meta_key
references. Don't call set_terminal_modes, it needs termcap strings.
(reset_sys_modes): Call tty_reset_terminal_modes instead of
reset_terminal_modes. Updated old_tty references.
src/term.c: Massive updates throuout the file.
(TS_*, TN_*): Moved to struct tty_output.
(RPov, delete_in_insert_mode se_is_so, costs_set, insert_mode): Ditto.
(standout_mode, specified_window, tty_cursor_hidden): Ditto.
(tty_set_terminal_modes, tty_reset_terminal_modes): New functions.
(turn_on_insert, turn_off_insert): Added tty parameter.
(turn_on_highlight, turn_off_highlight, toggle_highlight): Added tty parameter.
(tty_hide_cursor, tty_show_cursor): Ditto.
(background_highlight, highlight_if_desired): Ditto.
(tty_capable_p): Changed first parameter to tty_output.
(term_init): Make sure top_frame is initialized. Don't exit on errors
if this would have been a secondary terminal. Call set_terminal_modes
on the end.
(delete_tty): New function.
(delete_tty_1): New function.
(print_all_frames): New function, marginally useful for debugging.
src/termchar.h (struct tty_output): Changed old_tty to be a pointer.
Removed old_tty_valid member. Added tty-specific variables from term.c.
src/xfaces.c (Ftty_supports_face_attributes_p): Update for new
tty_capable_p.
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-9
Diffstat (limited to 'src/frame.c')
| -rw-r--r-- | src/frame.c | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/src/frame.c b/src/frame.c index 158aa1058fc..72d28c72b79 100644 --- a/src/frame.c +++ b/src/frame.c | |||
| @@ -478,14 +478,21 @@ make_minibuffer_frame () | |||
| 478 | static int terminal_frame_count; | 478 | static int terminal_frame_count; |
| 479 | 479 | ||
| 480 | struct frame * | 480 | struct frame * |
| 481 | make_terminal_frame (tty, tty_type) | 481 | make_terminal_frame (tty_name, tty_type) |
| 482 | char *tty; | 482 | char *tty_name; |
| 483 | char *tty_type; | 483 | char *tty_type; |
| 484 | { | 484 | { |
| 485 | register struct frame *f; | 485 | register struct frame *f; |
| 486 | Lisp_Object frame; | 486 | Lisp_Object frame; |
| 487 | char name[20]; | 487 | char name[20]; |
| 488 | struct tty_output *tty; | ||
| 488 | 489 | ||
| 490 | /* init_term may throw an error, so create the tty first. */ | ||
| 491 | if (initialized) | ||
| 492 | tty = term_init (tty_name, tty_type); | ||
| 493 | else | ||
| 494 | tty = term_dummy_init (); | ||
| 495 | |||
| 489 | #ifdef MULTI_KBOARD | 496 | #ifdef MULTI_KBOARD |
| 490 | if (!initial_kboard) | 497 | if (!initial_kboard) |
| 491 | { | 498 | { |
| @@ -544,10 +551,7 @@ make_terminal_frame (tty, tty_type) | |||
| 544 | make_mac_terminal_frame (f); | 551 | make_mac_terminal_frame (f); |
| 545 | #else | 552 | #else |
| 546 | f->output_method = output_termcap; | 553 | f->output_method = output_termcap; |
| 547 | if (initialized) | 554 | f->output_data.tty = tty; |
| 548 | f->output_data.tty = term_init (tty, tty_type); | ||
| 549 | else | ||
| 550 | f->output_data.tty = term_dummy_init (); | ||
| 551 | f->output_data.tty->top_frame = frame; | 555 | f->output_data.tty->top_frame = frame; |
| 552 | #ifdef CANNOT_DUMP | 556 | #ifdef CANNOT_DUMP |
| 553 | FRAME_FOREGROUND_PIXEL(f) = FACE_TTY_DEFAULT_FG_COLOR; | 557 | FRAME_FOREGROUND_PIXEL(f) = FACE_TTY_DEFAULT_FG_COLOR; |
| @@ -608,6 +612,8 @@ Note that changing the size of one terminal frame automatically affects all. */ | |||
| 608 | /* XXX Ugh, there must be a better way to do this. */ | 612 | /* XXX Ugh, there must be a better way to do this. */ |
| 609 | tty = Fassq (Qtty, parms); | 613 | tty = Fassq (Qtty, parms); |
| 610 | if (EQ (tty, Qnil)) | 614 | if (EQ (tty, Qnil)) |
| 615 | tty = Fassq (Qtty, XFRAME (selected_frame)->param_alist); | ||
| 616 | if (EQ (tty, Qnil)) | ||
| 611 | tty = Fassq (Qtty, Vdefault_frame_alist); | 617 | tty = Fassq (Qtty, Vdefault_frame_alist); |
| 612 | if (! EQ (tty, Qnil)) | 618 | if (! EQ (tty, Qnil)) |
| 613 | tty = XCDR (tty); | 619 | tty = XCDR (tty); |
| @@ -617,6 +623,8 @@ Note that changing the size of one terminal frame automatically affects all. */ | |||
| 617 | tty_type = Fassq (Qtty_type, parms); | 623 | tty_type = Fassq (Qtty_type, parms); |
| 618 | if (EQ (tty_type, Qnil)) | 624 | if (EQ (tty_type, Qnil)) |
| 619 | tty_type = Fassq (Qtty_type, Vdefault_frame_alist); | 625 | tty_type = Fassq (Qtty_type, Vdefault_frame_alist); |
| 626 | if (EQ (tty_type, Qnil)) | ||
| 627 | tty_type = Fassq (Qtty, XFRAME (selected_frame)->param_alist); | ||
| 620 | if (! EQ (tty_type, Qnil)) | 628 | if (! EQ (tty_type, Qnil)) |
| 621 | tty_type = XCDR (tty_type); | 629 | tty_type = XCDR (tty_type); |
| 622 | if (EQ (tty_type, Qnil) || !STRINGP (tty_type)) | 630 | if (EQ (tty_type, Qnil) || !STRINGP (tty_type)) |
| @@ -1300,7 +1308,7 @@ The functions are run with one arg, the frame to be deleted. */) | |||
| 1300 | { | 1308 | { |
| 1301 | FOR_EACH_FRAME (tail, frame1) | 1309 | FOR_EACH_FRAME (tail, frame1) |
| 1302 | { | 1310 | { |
| 1303 | if (! EQ (frame, frame1)) | 1311 | if (! EQ (frame, frame1) && FRAME_LIVE_P (XFRAME (frame1))) |
| 1304 | break; | 1312 | break; |
| 1305 | } | 1313 | } |
| 1306 | } | 1314 | } |