annotate src/termchar.h @ 99492:ee792794d888

(isearch-search-fun): Compare the length of the current search string with the length of the string from the previous search state to detect the situation when the user adds or removes characters in the search string. Use word-search-forward-lax and word-search-backward-lax in this case, and otherwise word-search-forward and word-search-backward.
author Juri Linkov <juri@jurta.org>
date Tue, 11 Nov 2008 19:43:09 +0000
parents da105b0d0d3f
children 79edd8112818
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
486
80cdb2387043 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1 /* Flags and parameters describing terminal's characteristics.
75227
e90d04cd455a Update copyright for years from Emacs 21 to present (mainly adding
Glenn Morris <rgm@gnu.org>
parents: 68651
diff changeset
2 Copyright (C) 1985, 1986, 2001, 2002, 2003, 2004,
79759
fc2bcd2a8aad Add 2008 to copyright years.
Glenn Morris <rgm@gnu.org>
parents: 78260
diff changeset
3 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
486
80cdb2387043 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
4
80cdb2387043 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
5 This file is part of GNU Emacs.
80cdb2387043 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
6
94994
29adfc9354e7 Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 93883
diff changeset
7 GNU Emacs is free software: you can redistribute it and/or modify
486
80cdb2387043 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
8 it under the terms of the GNU General Public License as published by
94994
29adfc9354e7 Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 93883
diff changeset
9 the Free Software Foundation, either version 3 of the License, or
29adfc9354e7 Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 93883
diff changeset
10 (at your option) any later version.
486
80cdb2387043 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
11
80cdb2387043 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
12 GNU Emacs is distributed in the hope that it will be useful,
80cdb2387043 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
80cdb2387043 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
80cdb2387043 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
15 GNU General Public License for more details.
80cdb2387043 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
16
80cdb2387043 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
17 You should have received a copy of the GNU General Public License
94994
29adfc9354e7 Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 93883
diff changeset
18 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
486
80cdb2387043 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
19
82989
f3845715a5f6 Separate frame-local, tty-dependent parameters from tty-local parameters.
Karoly Lorentey <lorentey@elte.hu>
parents: 53233
diff changeset
20 /* Each termcap frame points to its own struct tty_output object in
f3845715a5f6 Separate frame-local, tty-dependent parameters from tty-local parameters.
Karoly Lorentey <lorentey@elte.hu>
parents: 53233
diff changeset
21 the output_data.tty field. The tty_output structure contains the
f3845715a5f6 Separate frame-local, tty-dependent parameters from tty-local parameters.
Karoly Lorentey <lorentey@elte.hu>
parents: 53233
diff changeset
22 information that is specific to termcap frames. */
486
80cdb2387043 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
23
53226
dd3018b4785b Implemented multiple tty support.
Karoly Lorentey <lorentey@elte.hu>
parents: 53225
diff changeset
24 struct tty_output
53225
4250e7e26247 Add a level of indirection to terminal characteristics.
Karoly Lorentey <lorentey@elte.hu>
parents: 52401
diff changeset
25 {
82989
f3845715a5f6 Separate frame-local, tty-dependent parameters from tty-local parameters.
Karoly Lorentey <lorentey@elte.hu>
parents: 53233
diff changeset
26 /* The Emacs structure for the tty device this frame is on. */
f3845715a5f6 Separate frame-local, tty-dependent parameters from tty-local parameters.
Karoly Lorentey <lorentey@elte.hu>
parents: 53233
diff changeset
27 struct tty_display_info *display_info;
f3845715a5f6 Separate frame-local, tty-dependent parameters from tty-local parameters.
Karoly Lorentey <lorentey@elte.hu>
parents: 53233
diff changeset
28
f3845715a5f6 Separate frame-local, tty-dependent parameters from tty-local parameters.
Karoly Lorentey <lorentey@elte.hu>
parents: 53233
diff changeset
29 /* There is nothing else here at the moment... */
f3845715a5f6 Separate frame-local, tty-dependent parameters from tty-local parameters.
Karoly Lorentey <lorentey@elte.hu>
parents: 53233
diff changeset
30 };
f3845715a5f6 Separate frame-local, tty-dependent parameters from tty-local parameters.
Karoly Lorentey <lorentey@elte.hu>
parents: 53233
diff changeset
31
f3845715a5f6 Separate frame-local, tty-dependent parameters from tty-local parameters.
Karoly Lorentey <lorentey@elte.hu>
parents: 53233
diff changeset
32 /* Parameters that are shared between frames on the same tty device. */
83025
c66ebcc29777 Removed %T in mode-line-format. Trivial documentation changes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83008
diff changeset
33
82989
f3845715a5f6 Separate frame-local, tty-dependent parameters from tty-local parameters.
Karoly Lorentey <lorentey@elte.hu>
parents: 53233
diff changeset
34 struct tty_display_info
f3845715a5f6 Separate frame-local, tty-dependent parameters from tty-local parameters.
Karoly Lorentey <lorentey@elte.hu>
parents: 53233
diff changeset
35 {
f3845715a5f6 Separate frame-local, tty-dependent parameters from tty-local parameters.
Karoly Lorentey <lorentey@elte.hu>
parents: 53233
diff changeset
36 struct tty_display_info *next; /* Chain of all tty devices. */
f3845715a5f6 Separate frame-local, tty-dependent parameters from tty-local parameters.
Karoly Lorentey <lorentey@elte.hu>
parents: 53233
diff changeset
37
53226
dd3018b4785b Implemented multiple tty support.
Karoly Lorentey <lorentey@elte.hu>
parents: 53225
diff changeset
38 char *name; /* The name of the device file or 0 if
dd3018b4785b Implemented multiple tty support.
Karoly Lorentey <lorentey@elte.hu>
parents: 53225
diff changeset
39 stdin/stdout. */
dd3018b4785b Implemented multiple tty support.
Karoly Lorentey <lorentey@elte.hu>
parents: 53225
diff changeset
40 char *type; /* The type of the tty. */
53225
4250e7e26247 Add a level of indirection to terminal characteristics.
Karoly Lorentey <lorentey@elte.hu>
parents: 52401
diff changeset
41
53226
dd3018b4785b Implemented multiple tty support.
Karoly Lorentey <lorentey@elte.hu>
parents: 53225
diff changeset
42 /* Input/output */
dd3018b4785b Implemented multiple tty support.
Karoly Lorentey <lorentey@elte.hu>
parents: 53225
diff changeset
43
83065
a871be7b26a5 Implemented suspending of emacsclient frames.
Karoly Lorentey <lorentey@elte.hu>
parents: 83027
diff changeset
44 FILE *input; /* The stream to be used for terminal input.
a871be7b26a5 Implemented suspending of emacsclient frames.
Karoly Lorentey <lorentey@elte.hu>
parents: 83027
diff changeset
45 NULL if the terminal is suspended. */
a871be7b26a5 Implemented suspending of emacsclient frames.
Karoly Lorentey <lorentey@elte.hu>
parents: 83027
diff changeset
46 FILE *output; /* The stream to be used for terminal output.
a871be7b26a5 Implemented suspending of emacsclient frames.
Karoly Lorentey <lorentey@elte.hu>
parents: 83027
diff changeset
47 NULL if the terminal is suspended. */
53226
dd3018b4785b Implemented multiple tty support.
Karoly Lorentey <lorentey@elte.hu>
parents: 53225
diff changeset
48
dd3018b4785b Implemented multiple tty support.
Karoly Lorentey <lorentey@elte.hu>
parents: 53225
diff changeset
49 FILE *termscript; /* If nonzero, send all terminal output
dd3018b4785b Implemented multiple tty support.
Karoly Lorentey <lorentey@elte.hu>
parents: 53225
diff changeset
50 characters to this stream also. */
dd3018b4785b Implemented multiple tty support.
Karoly Lorentey <lorentey@elte.hu>
parents: 53225
diff changeset
51
53233
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
52 struct emacs_tty *old_tty; /* The initial tty mode bits */
53226
dd3018b4785b Implemented multiple tty support.
Karoly Lorentey <lorentey@elte.hu>
parents: 53225
diff changeset
53
dd3018b4785b Implemented multiple tty support.
Karoly Lorentey <lorentey@elte.hu>
parents: 53225
diff changeset
54 int term_initted; /* 1 if we have been through init_sys_modes. */
53229
33c3c7c16e13 lib-src/emacsclient.c: Implemented --here option (open a new Emacs tty). Needs more work.
Karoly Lorentey <lorentey@elte.hu>
parents: 53226
diff changeset
55
33c3c7c16e13 lib-src/emacsclient.c: Implemented --here option (open a new Emacs tty). Needs more work.
Karoly Lorentey <lorentey@elte.hu>
parents: 53226
diff changeset
56
82989
f3845715a5f6 Separate frame-local, tty-dependent parameters from tty-local parameters.
Karoly Lorentey <lorentey@elte.hu>
parents: 53233
diff changeset
57 int reference_count; /* Number of frames that are on this display. */
83008
040dd41ed7d0 Hookified termcap devices, added bootstrap display device, plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83004
diff changeset
58
83431
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83353
diff changeset
59 struct terminal *terminal; /* Points back to the generic terminal
83008
040dd41ed7d0 Hookified termcap devices, added bootstrap display device, plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83004
diff changeset
60 structure. This is sometimes handy. */
83431
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83353
diff changeset
61
82989
f3845715a5f6 Separate frame-local, tty-dependent parameters from tty-local parameters.
Karoly Lorentey <lorentey@elte.hu>
parents: 53233
diff changeset
62 /* Info on cursor positioning. */
53232
22aaf1e5fbe6 Full support for multiple terminal I/O (with some rough edges).
Karoly Lorentey <lorentey@elte.hu>
parents: 53229
diff changeset
63 struct cm *Wcm;
22aaf1e5fbe6 Full support for multiple terminal I/O (with some rough edges).
Karoly Lorentey <lorentey@elte.hu>
parents: 53229
diff changeset
64
53229
33c3c7c16e13 lib-src/emacsclient.c: Implemented --here option (open a new Emacs tty). Needs more work.
Karoly Lorentey <lorentey@elte.hu>
parents: 53226
diff changeset
65 /* Redisplay. */
33c3c7c16e13 lib-src/emacsclient.c: Implemented --here option (open a new Emacs tty). Needs more work.
Karoly Lorentey <lorentey@elte.hu>
parents: 53226
diff changeset
66
33c3c7c16e13 lib-src/emacsclient.c: Implemented --here option (open a new Emacs tty). Needs more work.
Karoly Lorentey <lorentey@elte.hu>
parents: 53226
diff changeset
67 Lisp_Object top_frame; /* The topmost frame on this tty. */
53226
dd3018b4785b Implemented multiple tty support.
Karoly Lorentey <lorentey@elte.hu>
parents: 53225
diff changeset
68
83449
ff74a86c2b16 Overhaul and simplify single_kboard API. Allow calls to `recursive-edit' in process filters. Small fixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83431
diff changeset
69 /* The previous frame we displayed on this tty. */
ff74a86c2b16 Overhaul and simplify single_kboard API. Allow calls to `recursive-edit' in process filters. Small fixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83431
diff changeset
70 struct frame *previous_frame;
93883
722fdbc7a012 * xdisp.c (redisplay_internal): Reset tty's color_mode when switching
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 87649
diff changeset
71 int previous_color_mode;
53229
33c3c7c16e13 lib-src/emacsclient.c: Implemented --here option (open a new Emacs tty). Needs more work.
Karoly Lorentey <lorentey@elte.hu>
parents: 53226
diff changeset
72
97649
da105b0d0d3f (FRAME_TTY): Support output_msdos_raw.
Eli Zaretskii <eliz@gnu.org>
parents: 94994
diff changeset
73 #ifdef MSDOS
da105b0d0d3f (FRAME_TTY): Support output_msdos_raw.
Eli Zaretskii <eliz@gnu.org>
parents: 94994
diff changeset
74 /* These variables describe the range of text currently shown in its
da105b0d0d3f (FRAME_TTY): Support output_msdos_raw.
Eli Zaretskii <eliz@gnu.org>
parents: 94994
diff changeset
75 mouse-face, together with the window they apply to. As long as
da105b0d0d3f (FRAME_TTY): Support output_msdos_raw.
Eli Zaretskii <eliz@gnu.org>
parents: 94994
diff changeset
76 the mouse stays within this range, we need not redraw anything on
da105b0d0d3f (FRAME_TTY): Support output_msdos_raw.
Eli Zaretskii <eliz@gnu.org>
parents: 94994
diff changeset
77 its account. Rows and columns are glyph matrix positions in
da105b0d0d3f (FRAME_TTY): Support output_msdos_raw.
Eli Zaretskii <eliz@gnu.org>
parents: 94994
diff changeset
78 MOUSE_FACE_WINDOW. */
da105b0d0d3f (FRAME_TTY): Support output_msdos_raw.
Eli Zaretskii <eliz@gnu.org>
parents: 94994
diff changeset
79 int mouse_face_beg_row, mouse_face_beg_col;
da105b0d0d3f (FRAME_TTY): Support output_msdos_raw.
Eli Zaretskii <eliz@gnu.org>
parents: 94994
diff changeset
80 int mouse_face_end_row, mouse_face_end_col;
da105b0d0d3f (FRAME_TTY): Support output_msdos_raw.
Eli Zaretskii <eliz@gnu.org>
parents: 94994
diff changeset
81 int mouse_face_past_end;
da105b0d0d3f (FRAME_TTY): Support output_msdos_raw.
Eli Zaretskii <eliz@gnu.org>
parents: 94994
diff changeset
82 Lisp_Object mouse_face_window;
da105b0d0d3f (FRAME_TTY): Support output_msdos_raw.
Eli Zaretskii <eliz@gnu.org>
parents: 94994
diff changeset
83 int mouse_face_face_id;
da105b0d0d3f (FRAME_TTY): Support output_msdos_raw.
Eli Zaretskii <eliz@gnu.org>
parents: 94994
diff changeset
84
da105b0d0d3f (FRAME_TTY): Support output_msdos_raw.
Eli Zaretskii <eliz@gnu.org>
parents: 94994
diff changeset
85 /* 1 if a mouse motion event came and we didn't handle it right away because
da105b0d0d3f (FRAME_TTY): Support output_msdos_raw.
Eli Zaretskii <eliz@gnu.org>
parents: 94994
diff changeset
86 gc was in progress. */
da105b0d0d3f (FRAME_TTY): Support output_msdos_raw.
Eli Zaretskii <eliz@gnu.org>
parents: 94994
diff changeset
87 int mouse_face_deferred_gc;
da105b0d0d3f (FRAME_TTY): Support output_msdos_raw.
Eli Zaretskii <eliz@gnu.org>
parents: 94994
diff changeset
88
da105b0d0d3f (FRAME_TTY): Support output_msdos_raw.
Eli Zaretskii <eliz@gnu.org>
parents: 94994
diff changeset
89 /* FRAME and X, Y position of mouse when last checked for
da105b0d0d3f (FRAME_TTY): Support output_msdos_raw.
Eli Zaretskii <eliz@gnu.org>
parents: 94994
diff changeset
90 highlighting. X and Y can be negative or out of range for the frame. */
da105b0d0d3f (FRAME_TTY): Support output_msdos_raw.
Eli Zaretskii <eliz@gnu.org>
parents: 94994
diff changeset
91 struct frame *mouse_face_mouse_frame;
da105b0d0d3f (FRAME_TTY): Support output_msdos_raw.
Eli Zaretskii <eliz@gnu.org>
parents: 94994
diff changeset
92 int mouse_face_mouse_x, mouse_face_mouse_y;
da105b0d0d3f (FRAME_TTY): Support output_msdos_raw.
Eli Zaretskii <eliz@gnu.org>
parents: 94994
diff changeset
93
da105b0d0d3f (FRAME_TTY): Support output_msdos_raw.
Eli Zaretskii <eliz@gnu.org>
parents: 94994
diff changeset
94 /* Nonzero means defer mouse-motion highlighting. */
da105b0d0d3f (FRAME_TTY): Support output_msdos_raw.
Eli Zaretskii <eliz@gnu.org>
parents: 94994
diff changeset
95 int mouse_face_defer;
da105b0d0d3f (FRAME_TTY): Support output_msdos_raw.
Eli Zaretskii <eliz@gnu.org>
parents: 94994
diff changeset
96
da105b0d0d3f (FRAME_TTY): Support output_msdos_raw.
Eli Zaretskii <eliz@gnu.org>
parents: 94994
diff changeset
97 /* Nonzero means that the mouse highlight should not be shown. */
da105b0d0d3f (FRAME_TTY): Support output_msdos_raw.
Eli Zaretskii <eliz@gnu.org>
parents: 94994
diff changeset
98 int mouse_face_hidden;
da105b0d0d3f (FRAME_TTY): Support output_msdos_raw.
Eli Zaretskii <eliz@gnu.org>
parents: 94994
diff changeset
99 #endif /* !MSDOS */
da105b0d0d3f (FRAME_TTY): Support output_msdos_raw.
Eli Zaretskii <eliz@gnu.org>
parents: 94994
diff changeset
100
53233
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
101 /* Strings, numbers and flags taken from the termcap entry. */
486
80cdb2387043 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
102
53233
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
103 char *TS_ins_line; /* "al" */
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
104 char *TS_ins_multi_lines; /* "AL" (one parameter, # lines to insert) */
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
105 char *TS_bell; /* "bl" */
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
106 char *TS_clr_to_bottom; /* "cd" */
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
107 char *TS_clr_line; /* "ce", clear to end of line */
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
108 char *TS_clr_frame; /* "cl" */
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
109 char *TS_set_scroll_region; /* "cs" (2 params, first line and last line) */
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
110 char *TS_set_scroll_region_1; /* "cS" (4 params: total lines,
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
111 lines above scroll region, lines below it,
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
112 total lines again) */
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
113 char *TS_del_char; /* "dc" */
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
114 char *TS_del_multi_chars; /* "DC" (one parameter, # chars to delete) */
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
115 char *TS_del_line; /* "dl" */
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
116 char *TS_del_multi_lines; /* "DL" (one parameter, # lines to delete) */
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
117 char *TS_delete_mode; /* "dm", enter character-delete mode */
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
118 char *TS_end_delete_mode; /* "ed", leave character-delete mode */
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
119 char *TS_end_insert_mode; /* "ei", leave character-insert mode */
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
120 char *TS_ins_char; /* "ic" */
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
121 char *TS_ins_multi_chars; /* "IC" (one parameter, # chars to insert) */
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
122 char *TS_insert_mode; /* "im", enter character-insert mode */
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
123 char *TS_pad_inserted_char; /* "ip". Just padding, no commands. */
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
124 char *TS_end_keypad_mode; /* "ke" */
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
125 char *TS_keypad_mode; /* "ks" */
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
126 char *TS_pad_char; /* "pc", char to use as padding */
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
127 char *TS_repeat; /* "rp" (2 params, # times to repeat
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
128 and character to be repeated) */
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
129 char *TS_end_standout_mode; /* "se" */
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
130 char *TS_fwd_scroll; /* "sf" */
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
131 char *TS_standout_mode; /* "so" */
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
132 char *TS_rev_scroll; /* "sr" */
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
133 char *TS_end_termcap_modes; /* "te" */
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
134 char *TS_termcap_modes; /* "ti" */
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
135 char *TS_visible_bell; /* "vb" */
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
136 char *TS_cursor_normal; /* "ve" */
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
137 char *TS_cursor_visible; /* "vs" */
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
138 char *TS_cursor_invisible; /* "vi" */
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
139 char *TS_set_window; /* "wi" (4 params, start and end of window,
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
140 each as vpos and hpos) */
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
141
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
142 char *TS_enter_bold_mode; /* "md" -- turn on bold (extra bright mode). */
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
143 char *TS_enter_dim_mode; /* "mh" -- turn on half-bright mode. */
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
144 char *TS_enter_blink_mode; /* "mb" -- enter blinking mode. */
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
145 char *TS_enter_reverse_mode; /* "mr" -- enter reverse video mode. */
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
146 char *TS_exit_underline_mode; /* "us" -- start underlining. */
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
147 char *TS_enter_underline_mode; /* "ue" -- end underlining. */
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
148
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
149 /* "as"/"ae" -- start/end alternate character set. Not really
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
150 supported, yet. */
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
151 char *TS_enter_alt_charset_mode;
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
152 char *TS_exit_alt_charset_mode;
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
153
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
154 char *TS_exit_attribute_mode; /* "me" -- switch appearances off. */
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
155
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
156 /* Value of the "NC" (no_color_video) capability, or 0 if not present. */
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
157 int TN_no_color_video;
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
158
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
159 int TN_max_colors; /* "Co" -- number of colors. */
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
160
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
161 /* "pa" -- max. number of color pairs on screen. Not handled yet.
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
162 Could be a problem if not equal to TN_max_colors * TN_max_colors. */
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
163 int TN_max_pairs;
486
80cdb2387043 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
164
53233
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
165 /* "op" -- SVr4 set default pair to its original value. */
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
166 char *TS_orig_pair;
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
167
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
168 /* "AF"/"AB" or "Sf"/"Sb"-- set ANSI or SVr4 foreground/background color.
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
169 1 param, the color index. */
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
170 char *TS_set_foreground;
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
171 char *TS_set_background;
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
172
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
173 int TF_hazeltine; /* termcap hz flag. */
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
174 int TF_insmode_motion; /* termcap mi flag: can move while in insert mode. */
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
175 int TF_standout_motion; /* termcap mi flag: can move while in standout mode. */
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
176 int TF_underscore; /* termcap ul flag: _ underlines if over-struck on
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
177 non-blank position. Must clear before writing _. */
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
178 int TF_teleray; /* termcap xt flag: many weird consequences.
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
179 For t1061. */
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
180
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
181 int RPov; /* # chars to start a TS_repeat */
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
182
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
183 int delete_in_insert_mode; /* delete mode == insert mode */
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
184
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
185 int se_is_so; /* 1 if same string both enters and leaves
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
186 standout mode */
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
187
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
188 int costs_set; /* Nonzero if costs have been calculated. */
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
189
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
190 int insert_mode; /* Nonzero when in insert mode. */
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
191 int standout_mode; /* Nonzero when in standout mode. */
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
192
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
193
486
80cdb2387043 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
194
53233
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
195 /* 1 if should obey 0200 bit in input chars as "Meta", 2 if should
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
196 keep 0200 bit in input chars. 0 to ignore the 0200 bit. */
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
197
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
198 int meta_key;
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
199
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
200 /* Size of window specified by higher levels.
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
201 This is the number of lines, from the top of frame downwards,
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
202 which can participate in insert-line/delete-line operations.
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
203
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
204 Effectively it excludes the bottom frame_lines - specified_window_size
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
205 lines from those operations. */
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
206
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
207 int specified_window;
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
208
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
209 /* Flag used in tty_show/hide_cursor. */
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
210
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
211 int cursor_hidden;
82990
2ecd1f669db9 Fixed X support, preliminary support for X-tty combo sessions.
Karoly Lorentey <lorentey@elte.hu>
parents: 82989
diff changeset
212
2ecd1f669db9 Fixed X support, preliminary support for X-tty combo sessions.
Karoly Lorentey <lorentey@elte.hu>
parents: 82989
diff changeset
213 /* Nonzero means use ^S/^Q for flow control. */
2ecd1f669db9 Fixed X support, preliminary support for X-tty combo sessions.
Karoly Lorentey <lorentey@elte.hu>
parents: 82989
diff changeset
214 int flow_control;
2ecd1f669db9 Fixed X support, preliminary support for X-tty combo sessions.
Karoly Lorentey <lorentey@elte.hu>
parents: 82989
diff changeset
215
53225
4250e7e26247 Add a level of indirection to terminal characteristics.
Karoly Lorentey <lorentey@elte.hu>
parents: 52401
diff changeset
216 };
4250e7e26247 Add a level of indirection to terminal characteristics.
Karoly Lorentey <lorentey@elte.hu>
parents: 52401
diff changeset
217
82989
f3845715a5f6 Separate frame-local, tty-dependent parameters from tty-local parameters.
Karoly Lorentey <lorentey@elte.hu>
parents: 53233
diff changeset
218 /* A chain of structures for all tty devices currently in use. */
f3845715a5f6 Separate frame-local, tty-dependent parameters from tty-local parameters.
Karoly Lorentey <lorentey@elte.hu>
parents: 53233
diff changeset
219 extern struct tty_display_info *tty_list;
53226
dd3018b4785b Implemented multiple tty support.
Karoly Lorentey <lorentey@elte.hu>
parents: 53225
diff changeset
220
53225
4250e7e26247 Add a level of indirection to terminal characteristics.
Karoly Lorentey <lorentey@elte.hu>
parents: 52401
diff changeset
221
82989
f3845715a5f6 Separate frame-local, tty-dependent parameters from tty-local parameters.
Karoly Lorentey <lorentey@elte.hu>
parents: 53233
diff changeset
222 #define FRAME_TTY(f) \
97649
da105b0d0d3f (FRAME_TTY): Support output_msdos_raw.
Eli Zaretskii <eliz@gnu.org>
parents: 94994
diff changeset
223 (((f)->output_method == output_termcap \
da105b0d0d3f (FRAME_TTY): Support output_msdos_raw.
Eli Zaretskii <eliz@gnu.org>
parents: 94994
diff changeset
224 || (f)->output_method == output_msdos_raw) \
83431
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83353
diff changeset
225 ? (f)->terminal->display_info.tty \
82989
f3845715a5f6 Separate frame-local, tty-dependent parameters from tty-local parameters.
Karoly Lorentey <lorentey@elte.hu>
parents: 53233
diff changeset
226 : (abort(), (struct tty_display_info *) 0))
f3845715a5f6 Separate frame-local, tty-dependent parameters from tty-local parameters.
Karoly Lorentey <lorentey@elte.hu>
parents: 53233
diff changeset
227
53226
dd3018b4785b Implemented multiple tty support.
Karoly Lorentey <lorentey@elte.hu>
parents: 53225
diff changeset
228 #define CURTTY() FRAME_TTY (SELECTED_FRAME())
52401
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 43713
diff changeset
229
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 43713
diff changeset
230 /* arch-tag: bf9f0d49-842b-42fb-9348-ec8759b27193
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 43713
diff changeset
231 (do not change this comment) */