mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-21 13:10:37 -08:00
Fix UTF-8 tty input when first frame is an X frame. Steps towards multiple tty locale support.
* lisp/international/mule-cmds.el (set-locale-environment): Ignore window-system; always set the keyboard coding system. * src/termhooks.h (DISPLAY_TERMINAL_CODING, DISPLAY_KEYBOARD_CODING): New macros. * src/coding.c (Fset_terminal_coding_system_internal, Fterminal_coding_system) (Fset_keyboard_coding_system_internal, Fkeyboard_coding_system): Add DISPLAY parameter. * src/term.c (get_display): Add THROW parameter. (get_tty_display, Fdisplay_name, Fdisplay_tty_type, Fdisplay_controlling_tty_p) (Fdelete_display, Fdisplay_live_p): Update callers. * src/xfns.c (check_x_display_info): Ditto. * src/frame.c (Fmake_terminal_frame, Fframe_display): Ditto. * src/dispextern.h (get_display): Update prototype. * lisp/international/mule.el (set-terminal-coding-system) (set-keyboard-coding-system): Add DISPLAY parameter. git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-338
This commit is contained in:
parent
941d4811d5
commit
68bba4e4b3
10 changed files with 110 additions and 74 deletions
|
|
@ -383,18 +383,19 @@ THINGS TO DO
|
||||||
Update: selecting a region with the mouse enables single_kboard
|
Update: selecting a region with the mouse enables single_kboard
|
||||||
under X. This is very confusing.
|
under X. This is very confusing.
|
||||||
|
|
||||||
Update: After discussions with Richard, this will be resolved by
|
Update: After discussions with Richard Stallman, this will be
|
||||||
having locked displays warn the user to wait, and introducing a
|
resolved by having locked displays warn the user to wait, and
|
||||||
complex protocol to remotely bail out of single-kboard mode by
|
introducing a complex protocol to remotely bail out of
|
||||||
pressing C-g.
|
single-kboard mode by pressing C-g.
|
||||||
|
|
||||||
Update: Warning the user is not trivial to implement, as Emacs has
|
Update: Warning the user is not trivial to implement, as Emacs has
|
||||||
only one echo area. Ideally the warning should not be displayed on
|
only one echo area, shared by all frames. Ideally the warning
|
||||||
the display that is locking the others. Perhaps the high
|
should not be displayed on the display that is locking the others.
|
||||||
probability of user confusion caused by single_kboard mode deserves
|
Perhaps the high probability of user confusion caused by
|
||||||
a special case in the display code. Alternatively, it might be
|
single_kboard mode deserves a special case in the display code.
|
||||||
good enough to signal single_kboard mode by changing the modelines
|
Alternatively, it might be good enough to signal single_kboard mode
|
||||||
or some other frame-local display element on the locked out displays.
|
by changing the modelines or some other frame-local display element
|
||||||
|
on the locked out displays.
|
||||||
|
|
||||||
** normal-erase-is-backspace-mode in simple.el needs to be updated for
|
** normal-erase-is-backspace-mode in simple.el needs to be updated for
|
||||||
multi-tty (rep. by Dan Waber).
|
multi-tty (rep. by Dan Waber).
|
||||||
|
|
@ -405,6 +406,22 @@ THINGS TO DO
|
||||||
** rif->flush_display_optional (NULL) calls should be replaced by a
|
** rif->flush_display_optional (NULL) calls should be replaced by a
|
||||||
new global function.
|
new global function.
|
||||||
|
|
||||||
|
** Support multiple character locales.
|
||||||
|
|
||||||
|
(1) A version of `set-locale-environment' needs to be written
|
||||||
|
for setting up display-local settings on ttys. I think
|
||||||
|
calling set-display-table-and-terminal-coding-system and
|
||||||
|
set-keyboard-coding-system would be enough. The language
|
||||||
|
environment itself should remain a global setting.
|
||||||
|
|
||||||
|
(2) Have a look at Vlocale_coding_system. Seems like it would
|
||||||
|
be a tedious job to localize it, although most references
|
||||||
|
use it for interfacing with libc and are therefore OK with
|
||||||
|
the global definition.
|
||||||
|
|
||||||
|
Exceptions found so far: x-select-text and
|
||||||
|
x-cut-buffer-or-selection-value.
|
||||||
|
|
||||||
** Have a look at fatal_error_hook.
|
** Have a look at fatal_error_hook.
|
||||||
|
|
||||||
** Have a look at set_frame_matrix_frame.
|
** Have a look at set_frame_matrix_frame.
|
||||||
|
|
@ -429,7 +446,8 @@ THINGS TO DO
|
||||||
|
|
||||||
** The terminal customization files in term/*.el tend to change global
|
** The terminal customization files in term/*.el tend to change global
|
||||||
parameters, which may confuse Emacs with multiple displays. Change
|
parameters, which may confuse Emacs with multiple displays. Change
|
||||||
them to tweak only frame-local settings, if possible.
|
them to tweak only frame-local settings, if possible. (They tend
|
||||||
|
to call define-key to set function key sequences a lot.)
|
||||||
|
|
||||||
** Dan Nicolaescu suggests that -nw should be added as an alias for -t
|
** Dan Nicolaescu suggests that -nw should be added as an alias for -t
|
||||||
in emacsclient. Good idea. (Alas, implementing this is not
|
in emacsclient. Good idea. (Alas, implementing this is not
|
||||||
|
|
@ -449,9 +467,6 @@ THINGS TO DO
|
||||||
terminals in xterm and konsole. The screen does flicker a bit,
|
terminals in xterm and konsole. The screen does flicker a bit,
|
||||||
but it's so quick it isn't noticable.
|
but it's so quick it isn't noticable.
|
||||||
|
|
||||||
** Clean up the frame-local variable system. I think it's ugly and
|
|
||||||
error-prone. But maybe I just haven't yet fully understood it.
|
|
||||||
|
|
||||||
** Move baud_rate to struct display.
|
** Move baud_rate to struct display.
|
||||||
|
|
||||||
** Implement support for starting an interactive Emacs session without
|
** Implement support for starting an interactive Emacs session without
|
||||||
|
|
@ -963,7 +978,7 @@ DIARY OF CHANGES
|
||||||
|
|
||||||
(Fixed. Emacs now uses the locale settings as seen by the
|
(Fixed. Emacs now uses the locale settings as seen by the
|
||||||
emacsclient process for server tty frames.)
|
emacsclient process for server tty frames.)
|
||||||
|
(Update: Not really; Vlocale_coding_system is still global.)
|
||||||
|
|
||||||
-- Make `struct display' accessible to Lisp programs. Accessor functions:
|
-- Make `struct display' accessible to Lisp programs. Accessor functions:
|
||||||
|
|
||||||
|
|
@ -1022,5 +1037,9 @@ DIARY OF CHANGES
|
||||||
|
|
||||||
(Done. This is the new default. No complaints so far.)
|
(Done. This is the new default. No complaints so far.)
|
||||||
|
|
||||||
|
-- Clean up the frame-local variable system. I think it's ugly and
|
||||||
|
error-prone. But maybe I just haven't yet fully understood it.
|
||||||
|
|
||||||
|
(Nothing to do. It doesn't seem ugly any more. It's rather clever.)
|
||||||
|
|
||||||
;;; arch-tag: 8da1619e-2e79-41a8-9ac9-a0485daad17d
|
;;; arch-tag: 8da1619e-2e79-41a8-9ac9-a0485daad17d
|
||||||
|
|
|
||||||
|
|
@ -2470,11 +2470,14 @@ See also `locale-charset-language-names', `locale-language-names',
|
||||||
;; Set the `keyboard-coding-system' if appropriate (tty
|
;; Set the `keyboard-coding-system' if appropriate (tty
|
||||||
;; only). At least X and MS Windows can generate
|
;; only). At least X and MS Windows can generate
|
||||||
;; multilingual input.
|
;; multilingual input.
|
||||||
(unless window-system
|
;; XXX This was disabled unless `window-system', but that
|
||||||
(let ((kcs (or coding-system
|
;; leads to buggy behaviour when a tty frame is opened
|
||||||
(car (get-language-info language-name
|
;; later. Setting the keyboard coding system has no adverse
|
||||||
'coding-system)))))
|
;; effect on X, so let's do it anyway. -- Lorentey
|
||||||
(if kcs (set-keyboard-coding-system kcs))))
|
(let ((kcs (or coding-system
|
||||||
|
(car (get-language-info language-name
|
||||||
|
'coding-system)))))
|
||||||
|
(if kcs (set-keyboard-coding-system kcs)))
|
||||||
|
|
||||||
(setq locale-coding-system
|
(setq locale-coding-system
|
||||||
(car (get-language-info language-name 'coding-priority))))
|
(car (get-language-info language-name 'coding-priority))))
|
||||||
|
|
|
||||||
|
|
@ -1199,13 +1199,17 @@ see) to CODING-SYSTEM."
|
||||||
This is normally set according to the selected language environment.
|
This is normally set according to the selected language environment.
|
||||||
See also the command `set-terminal-coding-system'.")
|
See also the command `set-terminal-coding-system'.")
|
||||||
|
|
||||||
(defun set-terminal-coding-system (coding-system)
|
(defun set-terminal-coding-system (coding-system &optional display)
|
||||||
"Set coding system of your terminal to CODING-SYSTEM.
|
"Set coding system of terminal output to CODING-SYSTEM.
|
||||||
All text output to the terminal will be encoded
|
All text output to DISPLAY will be encoded
|
||||||
with the specified coding system.
|
with the specified coding system.
|
||||||
|
|
||||||
For a list of possible values of CODING-SYSTEM, use \\[list-coding-systems].
|
For a list of possible values of CODING-SYSTEM, use \\[list-coding-systems].
|
||||||
The default is determined by the selected language environment
|
The default is determined by the selected language environment
|
||||||
or by the previous use of this command."
|
or by the previous use of this command.
|
||||||
|
|
||||||
|
DISPLAY may be a display id, a frame, or nil for the selected frame's display.
|
||||||
|
The setting has no effect on graphical displays."
|
||||||
(interactive
|
(interactive
|
||||||
(list (let ((default (if (and (not (terminal-coding-system))
|
(list (let ((default (if (and (not (terminal-coding-system))
|
||||||
default-terminal-coding-system)
|
default-terminal-coding-system)
|
||||||
|
|
@ -1219,7 +1223,7 @@ or by the previous use of this command."
|
||||||
(setq coding-system default-terminal-coding-system))
|
(setq coding-system default-terminal-coding-system))
|
||||||
(if coding-system
|
(if coding-system
|
||||||
(setq default-terminal-coding-system coding-system))
|
(setq default-terminal-coding-system coding-system))
|
||||||
(set-terminal-coding-system-internal coding-system)
|
(set-terminal-coding-system-internal coding-system display)
|
||||||
(redraw-frame (selected-frame)))
|
(redraw-frame (selected-frame)))
|
||||||
|
|
||||||
(defvar default-keyboard-coding-system nil
|
(defvar default-keyboard-coding-system nil
|
||||||
|
|
@ -1227,14 +1231,18 @@ or by the previous use of this command."
|
||||||
This is normally set according to the selected language environment.
|
This is normally set according to the selected language environment.
|
||||||
See also the command `set-keyboard-coding-system'.")
|
See also the command `set-keyboard-coding-system'.")
|
||||||
|
|
||||||
(defun set-keyboard-coding-system (coding-system)
|
(defun set-keyboard-coding-system (coding-system &optional display)
|
||||||
"Set coding system for keyboard input to CODING-SYSTEM.
|
"Set coding system for keyboard input on DISPLAY to CODING-SYSTEM.
|
||||||
In addition, this command enables Encoded-kbd minor mode.
|
In addition, this command enables Encoded-kbd minor mode.
|
||||||
\(If CODING-SYSTEM is nil, Encoded-kbd mode is turned off -- see
|
\(If CODING-SYSTEM is nil, Encoded-kbd mode is turned off -- see
|
||||||
`encoded-kbd-mode'.)
|
`encoded-kbd-mode'.)
|
||||||
|
|
||||||
For a list of possible values of CODING-SYSTEM, use \\[list-coding-systems].
|
For a list of possible values of CODING-SYSTEM, use \\[list-coding-systems].
|
||||||
The default is determined by the selected language environment
|
The default is determined by the selected language environment
|
||||||
or by the previous use of this command."
|
or by the previous use of this command.
|
||||||
|
|
||||||
|
DISPLAY may be a display id, a frame, or nil for the selected frame's display.
|
||||||
|
The setting has no effect on graphical displays."
|
||||||
(interactive
|
(interactive
|
||||||
(list (let ((default (if (and (not (keyboard-coding-system))
|
(list (let ((default (if (and (not (keyboard-coding-system))
|
||||||
default-keyboard-coding-system)
|
default-keyboard-coding-system)
|
||||||
|
|
@ -1248,7 +1256,7 @@ or by the previous use of this command."
|
||||||
(setq coding-system default-keyboard-coding-system))
|
(setq coding-system default-keyboard-coding-system))
|
||||||
(if coding-system
|
(if coding-system
|
||||||
(setq default-keyboard-coding-system coding-system))
|
(setq default-keyboard-coding-system coding-system))
|
||||||
(set-keyboard-coding-system-internal coding-system)
|
(set-keyboard-coding-system-internal coding-system display)
|
||||||
(setq keyboard-coding-system coding-system)
|
(setq keyboard-coding-system coding-system)
|
||||||
(encoded-kbd-mode (if coding-system 1 0)))
|
(encoded-kbd-mode (if coding-system 1 0)))
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,8 @@
|
||||||
;; -*- no-byte-compile: t -*-
|
;; -*- no-byte-compile: t -*-
|
||||||
;; Define function key sequences for DEC terminals.
|
;; Define function key sequences for DEC terminals.
|
||||||
|
|
||||||
|
;; XXX We need to find a way to have these define-keys be display-local. -- Lorentey
|
||||||
|
|
||||||
;; Termcap or terminfo should set these.
|
;; Termcap or terminfo should set these.
|
||||||
;; (define-key function-key-map "\e[A" [up])
|
;; (define-key function-key-map "\e[A" [up])
|
||||||
;; (define-key function-key-map "\e[B" [down])
|
;; (define-key function-key-map "\e[B" [down])
|
||||||
|
|
|
||||||
35
src/coding.c
35
src/coding.c
|
|
@ -7305,12 +7305,13 @@ Return the corresponding character code in Big5. */)
|
||||||
}
|
}
|
||||||
|
|
||||||
DEFUN ("set-terminal-coding-system-internal", Fset_terminal_coding_system_internal,
|
DEFUN ("set-terminal-coding-system-internal", Fset_terminal_coding_system_internal,
|
||||||
Sset_terminal_coding_system_internal, 1, 1, 0,
|
Sset_terminal_coding_system_internal, 1, 2, 0,
|
||||||
doc: /* Internal use only. */)
|
doc: /* Internal use only. */)
|
||||||
(coding_system)
|
(coding_system, display)
|
||||||
Lisp_Object coding_system;
|
Lisp_Object coding_system;
|
||||||
|
Lisp_Object display;
|
||||||
{
|
{
|
||||||
struct coding_system *terminal_coding = FRAME_TERMINAL_CODING (SELECTED_FRAME ());
|
struct coding_system *terminal_coding = DISPLAY_TERMINAL_CODING (get_display (display, 1));
|
||||||
CHECK_SYMBOL (coding_system);
|
CHECK_SYMBOL (coding_system);
|
||||||
setup_coding_system (Fcheck_coding_system (coding_system), terminal_coding);
|
setup_coding_system (Fcheck_coding_system (coding_system), terminal_coding);
|
||||||
/* We had better not send unsafe characters to terminal. */
|
/* We had better not send unsafe characters to terminal. */
|
||||||
|
|
@ -7343,33 +7344,39 @@ DEFUN ("set-safe-terminal-coding-system-internal", Fset_safe_terminal_coding_sys
|
||||||
}
|
}
|
||||||
|
|
||||||
DEFUN ("terminal-coding-system", Fterminal_coding_system,
|
DEFUN ("terminal-coding-system", Fterminal_coding_system,
|
||||||
Sterminal_coding_system, 0, 0, 0,
|
Sterminal_coding_system, 0, 1, 0,
|
||||||
doc: /* Return coding system specified for terminal output. */)
|
doc: /* Return coding system specified for terminal output on the given display.
|
||||||
()
|
DISPLAY may be a display id, a frame, or nil for the selected frame's display. */)
|
||||||
|
(display)
|
||||||
|
Lisp_Object display;
|
||||||
{
|
{
|
||||||
return FRAME_TERMINAL_CODING (SELECTED_FRAME ())->symbol;
|
return DISPLAY_TERMINAL_CODING (get_display (display, 1))->symbol;
|
||||||
}
|
}
|
||||||
|
|
||||||
DEFUN ("set-keyboard-coding-system-internal", Fset_keyboard_coding_system_internal,
|
DEFUN ("set-keyboard-coding-system-internal", Fset_keyboard_coding_system_internal,
|
||||||
Sset_keyboard_coding_system_internal, 1, 1, 0,
|
Sset_keyboard_coding_system_internal, 1, 2, 0,
|
||||||
doc: /* Internal use only. */)
|
doc: /* Internal use only. */)
|
||||||
(coding_system)
|
(coding_system, display)
|
||||||
Lisp_Object coding_system;
|
Lisp_Object coding_system;
|
||||||
|
Lisp_Object display;
|
||||||
{
|
{
|
||||||
|
struct display *d = get_display (display, 1);
|
||||||
CHECK_SYMBOL (coding_system);
|
CHECK_SYMBOL (coding_system);
|
||||||
|
|
||||||
setup_coding_system (Fcheck_coding_system (coding_system),
|
setup_coding_system (Fcheck_coding_system (coding_system),
|
||||||
FRAME_KEYBOARD_CODING (SELECTED_FRAME ()));
|
DISPLAY_KEYBOARD_CODING (d));
|
||||||
/* Character composition should be disabled. */
|
/* Character composition should be disabled. */
|
||||||
FRAME_KEYBOARD_CODING (SELECTED_FRAME ())->composing = COMPOSITION_DISABLED;
|
DISPLAY_KEYBOARD_CODING (d)->composing = COMPOSITION_DISABLED;
|
||||||
return Qnil;
|
return Qnil;
|
||||||
}
|
}
|
||||||
|
|
||||||
DEFUN ("keyboard-coding-system", Fkeyboard_coding_system,
|
DEFUN ("keyboard-coding-system", Fkeyboard_coding_system,
|
||||||
Skeyboard_coding_system, 0, 0, 0,
|
Skeyboard_coding_system, 0, 1, 0,
|
||||||
doc: /* Return coding system specified for decoding keyboard input. */)
|
doc: /* Return coding system specified for decoding keyboard input. */)
|
||||||
()
|
(display)
|
||||||
|
Lisp_Object display;
|
||||||
{
|
{
|
||||||
return FRAME_KEYBOARD_CODING (SELECTED_FRAME ())->symbol;
|
return DISPLAY_KEYBOARD_CODING (get_display (display, 1))->symbol;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2925,7 +2925,7 @@ extern int per_line_cost P_ ((char *));
|
||||||
extern void calculate_costs P_ ((struct frame *));
|
extern void calculate_costs P_ ((struct frame *));
|
||||||
extern void set_tty_color_mode P_ ((struct frame *, Lisp_Object));
|
extern void set_tty_color_mode P_ ((struct frame *, Lisp_Object));
|
||||||
extern void tty_setup_colors P_ ((struct tty_display_info *, int));
|
extern void tty_setup_colors P_ ((struct tty_display_info *, int));
|
||||||
extern struct display *get_display P_ ((Lisp_Object display));
|
extern struct display *get_display P_ ((Lisp_Object display, int));
|
||||||
extern struct display *get_named_tty_display P_ ((char *));
|
extern struct display *get_named_tty_display P_ ((char *));
|
||||||
EXFUN (Fdisplay_tty_type, 1);
|
EXFUN (Fdisplay_tty_type, 1);
|
||||||
extern struct display *init_initial_display P_ ((void));
|
extern struct display *init_initial_display P_ ((void));
|
||||||
|
|
|
||||||
|
|
@ -698,9 +698,7 @@ affects all frames on the same terminal device. */)
|
||||||
{
|
{
|
||||||
display_device = XCDR (display_device);
|
display_device = XCDR (display_device);
|
||||||
CHECK_NUMBER (display_device);
|
CHECK_NUMBER (display_device);
|
||||||
d = get_display (XINT (display_device));
|
d = get_display (XINT (display_device), 1);
|
||||||
if (!d)
|
|
||||||
wrong_type_argument (Qdisplay_live_p, display_device);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1073,7 +1071,7 @@ The display device is represented by its integer identifier. */)
|
||||||
|
|
||||||
CHECK_LIVE_FRAME (frame);
|
CHECK_LIVE_FRAME (frame);
|
||||||
|
|
||||||
d = get_display (frame);
|
d = get_display (frame, 0);
|
||||||
|
|
||||||
if (!d)
|
if (!d)
|
||||||
return Qnil;
|
return Qnil;
|
||||||
|
|
|
||||||
44
src/term.c
44
src/term.c
|
|
@ -2105,17 +2105,17 @@ set_tty_color_mode (f, val)
|
||||||
|
|
||||||
/* Return the display object specified by DISPLAY. DISPLAY may be a
|
/* Return the display object specified by DISPLAY. DISPLAY may be a
|
||||||
display id, a frame, or nil for the display device of the current
|
display id, a frame, or nil for the display device of the current
|
||||||
frame. */
|
frame. If THROW is zero, return NULL for failure, otherwise throw
|
||||||
|
an error. */
|
||||||
|
|
||||||
struct display *
|
struct display *
|
||||||
get_display (Lisp_Object display)
|
get_display (Lisp_Object display, int throw)
|
||||||
{
|
{
|
||||||
|
Lisp_Object result = NULL;
|
||||||
|
|
||||||
if (NILP (display))
|
if (NILP (display))
|
||||||
display = selected_frame;
|
display = selected_frame;
|
||||||
|
|
||||||
if (! INTEGERP (display) && ! FRAMEP (display))
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
if (INTEGERP (display))
|
if (INTEGERP (display))
|
||||||
{
|
{
|
||||||
struct display *d;
|
struct display *d;
|
||||||
|
|
@ -2123,15 +2123,21 @@ get_display (Lisp_Object display)
|
||||||
for (d = display_list; d; d = d->next_display)
|
for (d = display_list; d; d = d->next_display)
|
||||||
{
|
{
|
||||||
if (d->id == XINT (display))
|
if (d->id == XINT (display))
|
||||||
return d;
|
{
|
||||||
|
result = d;
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return NULL;
|
|
||||||
}
|
}
|
||||||
else if (FRAMEP (display))
|
else if (FRAMEP (display))
|
||||||
{
|
{
|
||||||
return FRAME_DISPLAY (XFRAME (display));
|
result = FRAME_DISPLAY (XFRAME (display));
|
||||||
}
|
}
|
||||||
return NULL;
|
|
||||||
|
if (result == NULL && throw)
|
||||||
|
wrong_type_argument (Qdisplay_live_p, display);
|
||||||
|
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Return the tty display object specified by DISPLAY. */
|
/* Return the tty display object specified by DISPLAY. */
|
||||||
|
|
@ -2139,7 +2145,7 @@ get_display (Lisp_Object display)
|
||||||
static struct display *
|
static struct display *
|
||||||
get_tty_display (Lisp_Object display)
|
get_tty_display (Lisp_Object display)
|
||||||
{
|
{
|
||||||
struct display *d = get_display (display);
|
struct display *d = get_display (display, 0);
|
||||||
|
|
||||||
if (d && d->type == output_initial)
|
if (d && d->type == output_initial)
|
||||||
d = NULL;
|
d = NULL;
|
||||||
|
|
@ -2194,10 +2200,7 @@ frame's display). */)
|
||||||
(display)
|
(display)
|
||||||
Lisp_Object display;
|
Lisp_Object display;
|
||||||
{
|
{
|
||||||
struct display *d = get_display (display);
|
struct display *d = get_display (display, 1);
|
||||||
|
|
||||||
if (!d)
|
|
||||||
wrong_type_argument (Qdisplay_live_p, display);
|
|
||||||
|
|
||||||
if (d->name)
|
if (d->name)
|
||||||
return build_string (d->name);
|
return build_string (d->name);
|
||||||
|
|
@ -2210,10 +2213,8 @@ DEFUN ("display-tty-type", Fdisplay_tty_type, Sdisplay_tty_type, 0, 1, 0,
|
||||||
(display)
|
(display)
|
||||||
Lisp_Object display;
|
Lisp_Object display;
|
||||||
{
|
{
|
||||||
struct display *d = get_display (display);
|
struct display *d = get_display (display, 1);
|
||||||
|
|
||||||
if (!d)
|
|
||||||
wrong_type_argument (Qdisplay_live_p, display);
|
|
||||||
if (d->type != output_termcap)
|
if (d->type != output_termcap)
|
||||||
error ("Display %d is not a termcap display", d->id);
|
error ("Display %d is not a termcap display", d->id);
|
||||||
|
|
||||||
|
|
@ -2228,10 +2229,7 @@ DEFUN ("display-controlling-tty-p", Fdisplay_controlling_tty_p, Sdisplay_control
|
||||||
(display)
|
(display)
|
||||||
Lisp_Object display;
|
Lisp_Object display;
|
||||||
{
|
{
|
||||||
struct display *d = get_display (display);
|
struct display *d = get_display (display, 1);
|
||||||
|
|
||||||
if (!d)
|
|
||||||
wrong_type_argument (Qdisplay_live_p, display);
|
|
||||||
|
|
||||||
if (d->type != output_termcap || d->display_info.tty->name)
|
if (d->type != output_termcap || d->display_info.tty->name)
|
||||||
return Qnil;
|
return Qnil;
|
||||||
|
|
@ -3157,7 +3155,7 @@ but if the second argument FORCE is non-nil, you may do so. */)
|
||||||
{
|
{
|
||||||
struct display *d, *p;
|
struct display *d, *p;
|
||||||
|
|
||||||
d = get_display (display);
|
d = get_display (display, 0);
|
||||||
|
|
||||||
if (!d)
|
if (!d)
|
||||||
return Qnil;
|
return Qnil;
|
||||||
|
|
@ -3193,7 +3191,7 @@ Displays are represented by their integer identifiers. */)
|
||||||
if (!INTEGERP (object))
|
if (!INTEGERP (object))
|
||||||
return Qnil;
|
return Qnil;
|
||||||
|
|
||||||
d = get_display (object);
|
d = get_display (object, 0);
|
||||||
|
|
||||||
if (!d)
|
if (!d)
|
||||||
return Qnil;
|
return Qnil;
|
||||||
|
|
|
||||||
|
|
@ -550,6 +550,9 @@ extern struct display *display_list;
|
||||||
#define FRAME_TERMINAL_CODING(f) ((f)->display->terminal_coding)
|
#define FRAME_TERMINAL_CODING(f) ((f)->display->terminal_coding)
|
||||||
#define FRAME_KEYBOARD_CODING(f) ((f)->display->keyboard_coding)
|
#define FRAME_KEYBOARD_CODING(f) ((f)->display->keyboard_coding)
|
||||||
|
|
||||||
|
#define DISPLAY_TERMINAL_CODING(d) ((d)->terminal_coding)
|
||||||
|
#define DISPLAY_KEYBOARD_CODING(d) ((d)->keyboard_coding)
|
||||||
|
|
||||||
#define FRAME_RIF(f) ((f)->display->rif)
|
#define FRAME_RIF(f) ((f)->display->rif)
|
||||||
|
|
||||||
#define FRAME_DISPLAY(f) ((f)->display)
|
#define FRAME_DISPLAY(f) ((f)->display)
|
||||||
|
|
|
||||||
|
|
@ -263,10 +263,8 @@ check_x_display_info (frame)
|
||||||
}
|
}
|
||||||
else if (INTEGERP (frame))
|
else if (INTEGERP (frame))
|
||||||
{
|
{
|
||||||
struct display *d = get_display (XINT (frame));
|
struct display *d = get_display (XINT (frame), 1);
|
||||||
|
|
||||||
if (!d)
|
|
||||||
wrong_type_argument (Qdisplay_live_p, frame);
|
|
||||||
if (d->type != output_x_window)
|
if (d->type != output_x_window)
|
||||||
error ("Display %d is not an X display", XINT (frame));
|
error ("Display %d is not an X display", XINT (frame));
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue