X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/3f22b86fc7d9b66ff3e332b9a56350e93ddbd0aa..5b71542de3ef7f08b7c30e93340502d7cc120910:/src/terminal.c diff --git a/src/terminal.c b/src/terminal.c index d94164a4e4..4b5532e3a4 100644 --- a/src/terminal.c +++ b/src/terminal.c @@ -1,5 +1,5 @@ /* Functions related to terminal devices. - Copyright (C) 2005-2012 Free Software Foundation, Inc. + Copyright (C) 2005-2013 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -21,7 +21,6 @@ along with GNU Emacs. If not, see . */ #define TERMHOOKS_INLINE EXTERN_INLINE #include -#include #include "lisp.h" #include "frame.h" @@ -40,10 +39,12 @@ static int next_terminal_id; /* The initial terminal device, created by initial_term_init. */ struct terminal *initial_terminal; +static Lisp_Object Qterminal_live_p; + static void delete_initial_terminal (struct terminal *); /* This setter is used only in this file, so it can be private. */ -static inline void +static void tset_param_alist (struct terminal *t, Lisp_Object val) { t->param_alist = val; @@ -200,11 +201,11 @@ ins_del_lines (struct frame *f, int vpos, int n) /* Return the terminal object specified by TERMINAL. TERMINAL may be a terminal object, a frame, or nil for the terminal device of the - current frame. If THROW is zero, return NULL for failure, + current frame. If THROW is false, return NULL for failure, otherwise throw an error. */ struct terminal * -get_terminal (Lisp_Object terminal, int throw) +get_terminal (Lisp_Object terminal, bool throw) { struct terminal *result = NULL; @@ -281,7 +282,7 @@ delete_terminal (struct terminal *terminal) xfree (terminal->name); terminal->name = NULL; - /* Check for live frames that are still on this terminal. */ + /* Check for live frames that are still on this terminal. */ FOR_EACH_FRAME (tail, frame) { struct frame *f = XFRAME (frame); @@ -294,7 +295,7 @@ delete_terminal (struct terminal *terminal) for (tp = &terminal_list; *tp != terminal; tp = &(*tp)->next_terminal) if (! *tp) - abort (); + emacs_abort (); *tp = terminal->next_terminal; xfree (terminal->keyboard_coding); @@ -361,14 +362,7 @@ If FRAME is nil, the selected frame is used. The terminal device is represented by its integer identifier. */) (Lisp_Object frame) { - struct terminal *t; - - if (NILP (frame)) - frame = selected_frame; - - CHECK_LIVE_FRAME (frame); - - t = FRAME_TERMINAL (XFRAME (frame)); + struct terminal *t = FRAME_TERMINAL (decode_live_frame (frame)); if (!t) return Qnil; @@ -406,12 +400,10 @@ possible return values. */) return Qw32; case output_msdos_raw: return Qpc; - case output_mac: - return Qmac; case output_ns: return Qns; default: - abort (); + emacs_abort (); } } @@ -519,7 +511,7 @@ struct terminal * init_initial_terminal (void) { if (initialized || terminal_list || tty_list) - abort (); + emacs_abort (); initial_terminal = create_terminal (); initial_terminal->type = output_initial; @@ -538,7 +530,7 @@ static void delete_initial_terminal (struct terminal *terminal) { if (terminal != initial_terminal) - abort (); + emacs_abort (); delete_terminal (terminal); initial_terminal = NULL; @@ -559,6 +551,8 @@ Each function is called with argument, the terminal. This may be called just before actually deleting the terminal, or some time later. */); Vdelete_terminal_functions = Qnil; + + DEFSYM (Qterminal_live_p, "terminal-live-p"); DEFSYM (Qdelete_terminal_functions, "delete-terminal-functions"); DEFSYM (Qrun_hook_with_args, "run-hook-with-args");