annotate lib-src/emacstool.c @ 22758:dbd9ecc9dbac

Added next-buffer/previous-buffer keybindings (bound to M-n/M-p). (crisp-unbury-buffer): New function. Fixed bogus XEmacs/Lucid string-match checking. Made modeline entry mouse2-able. (crisp-mode-map): Make this a sparse keymap parented from current-global-map. (crisp-mode-original-keymap): Don't copy the keymap. (crisp-last-last-command): Renamed from last-last-command. defvar it. (crisp-mode): Honor ARG. (crisp-kill-line, crisp-copy-line): When a region isn't highlighted, use the region from point to eol. Honor prefix argument. (crisp-submit-bug-report): New command, taken from cc-mode. Shortened the version numbering, removed the release-version tracking (crisp-version): New function. New keybindings `C-home', `C-end', `M-home', `M-end', `C-f', `M-l', `M-m'. (crisp-copy-line): No need to save point. Removed S-right and S-left bindings. Abstract the marking and selection interfaces so that we can be compatible with both Emacs and XEmacs. And try and make the behavior as close as possible under both environments so that there are no surprises.
author Karl Heuer <kwzh@gnu.org>
date Tue, 14 Jul 1998 22:17:35 +0000
parents ee40177f6c68
children 35906f73a07d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
1 /*
6111
617c0b6a50c0 Use GPL.
David J. MacKenzie <djm@gnu.org>
parents: 3591
diff changeset
2 Copyright (C) 1986, 1988, 1990, 1991 Free Software Foundation, Inc.
6112
ecaa966abd06 *** empty log message ***
David J. MacKenzie <djm@gnu.org>
parents: 6111
diff changeset
3
14186
ee40177f6c68 Update FSF's address in the preamble.
Erik Naggum <erik@naggum.no>
parents: 14036
diff changeset
4 This file is part of GNU Emacs.
ee40177f6c68 Update FSF's address in the preamble.
Erik Naggum <erik@naggum.no>
parents: 14036
diff changeset
5
ee40177f6c68 Update FSF's address in the preamble.
Erik Naggum <erik@naggum.no>
parents: 14036
diff changeset
6 GNU Emacs is free software; you can redistribute it and/or modify
ee40177f6c68 Update FSF's address in the preamble.
Erik Naggum <erik@naggum.no>
parents: 14036
diff changeset
7 it under the terms of the GNU General Public License as published by
ee40177f6c68 Update FSF's address in the preamble.
Erik Naggum <erik@naggum.no>
parents: 14036
diff changeset
8 the Free Software Foundation; either version 2, or (at your option)
ee40177f6c68 Update FSF's address in the preamble.
Erik Naggum <erik@naggum.no>
parents: 14036
diff changeset
9 any later version.
6111
617c0b6a50c0 Use GPL.
David J. MacKenzie <djm@gnu.org>
parents: 3591
diff changeset
10
14186
ee40177f6c68 Update FSF's address in the preamble.
Erik Naggum <erik@naggum.no>
parents: 14036
diff changeset
11 GNU Emacs is distributed in the hope that it will be useful,
ee40177f6c68 Update FSF's address in the preamble.
Erik Naggum <erik@naggum.no>
parents: 14036
diff changeset
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
ee40177f6c68 Update FSF's address in the preamble.
Erik Naggum <erik@naggum.no>
parents: 14036
diff changeset
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
ee40177f6c68 Update FSF's address in the preamble.
Erik Naggum <erik@naggum.no>
parents: 14036
diff changeset
14 GNU General Public License for more details.
6111
617c0b6a50c0 Use GPL.
David J. MacKenzie <djm@gnu.org>
parents: 3591
diff changeset
15
14186
ee40177f6c68 Update FSF's address in the preamble.
Erik Naggum <erik@naggum.no>
parents: 14036
diff changeset
16 You should have received a copy of the GNU General Public License
ee40177f6c68 Update FSF's address in the preamble.
Erik Naggum <erik@naggum.no>
parents: 14036
diff changeset
17 along with GNU Emacs; see the file COPYING. If not, write to
ee40177f6c68 Update FSF's address in the preamble.
Erik Naggum <erik@naggum.no>
parents: 14036
diff changeset
18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
ee40177f6c68 Update FSF's address in the preamble.
Erik Naggum <erik@naggum.no>
parents: 14036
diff changeset
19 Boston, MA 02111-1307, USA. */
6111
617c0b6a50c0 Use GPL.
David J. MacKenzie <djm@gnu.org>
parents: 3591
diff changeset
20
617c0b6a50c0 Use GPL.
David J. MacKenzie <djm@gnu.org>
parents: 3591
diff changeset
21 /*
287
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
22 * For Emacs in SunView/Sun-Windows: (supported by Sun Unix v3.2 or greater)
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
23 * Insert a notifier filter-function to convert all useful input
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
24 * to "key" sequences that emacs can understand. See: Emacstool(1).
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
25 *
287
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
26 * Author: Jeff Peck, Sun Microsystems, Inc. <peck@eng.sun.com>
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
27 *
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
28 * Original Idea: Ian Batten
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
29 * Updated 15-Mar-88, Jeff Peck: set IN_EMACSTOOL, TERM, TERMCAP
287
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
30 * Updated 10-Sep-88, Jeff Peck: add XVIEW and JLE support
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
31 * Updated 8-Oct-90, Jeff Peck: add Meta-bit for Xview
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
32 * Updated 6-Mar-91, Jeff Peck: Hack to detect -Wt invocation
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
33 * [note, TTYSW limitation means you must Click-To-Type in Openwin]
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
34 * [fixed in OW3 or use local/tty.o]
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
35 * for better results, this should move to using TERMSW.
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
36 * Updated 10-Mar-91, Jeff Peck, et al: support for TERMSW (TTERM)
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
37 * allows point-to-type even in OW2
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
38 *
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
39 * [note: xvetool should be started with the "-nw" flag for emacs!]
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
40 */
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
41
287
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
42 #ifdef XVIEW
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
43 #include <xview/xview.h>
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
44 #include <xview/panel.h>
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
45 #include <xview/attr.h>
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
46 #include <xview/tty.h>
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
47 #include <xview/ttysw.h> /* private defines */
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
48 #include <xview/termsw.h> /* -DTTERM */
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
49 #include <xview/font.h> /* for testing */
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
50 #else
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
51 #include <suntool/sunview.h>
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
52 #include <suntool/tty.h>
287
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
53 #include <suntool/ttysw.h>
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
54 #endif XVIEW
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
55
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
56 #ifdef JLE
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
57 # include <locale.h>
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
58 #endif JLE
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
59
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
60 #include <stdio.h>
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
61 #include <sys/file.h>
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
62
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
63 #define BUFFER_SIZE 128 /* Size of all the buffers */
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
64
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
65 /* define WANT_CAPS_LOCK to make f-key T1 (aka F1) behave as CapsLock */
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
66 #define WANT_CAPS_LOCK
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
67 #ifdef WANT_CAPS_LOCK
3591
507f64624555 Apply typo patches from Paul Eggert.
Jim Blandy <jimb@redhat.com>
parents: 287
diff changeset
68 int caps_lock; /* toggle indicator for f-key T1 caps lock */
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
69 static char *Caps = "[CAPS] "; /* Caps Lock prefix string */
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
70 #define CAPS_LEN 7 /* strlen (Caps) */
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
71 #endif
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
72
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
73 static char *mouse_prefix = "\030\000"; /* C-x C-@ */
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
74 static int m_prefix_length = 2; /* mouse_prefix length */
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
75
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
76 static char *key_prefix = "\030*"; /* C-x * */
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
77 static int k_prefix_length = 2; /* key_prefix length */
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
78
287
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
79 #ifdef JLE
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
80 static char *emacs_name = "nemacs"; /* default run command */
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
81 static char *title = "NEmacstool - "; /* initial title */
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
82 #else
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
83 static char *emacs_name = "emacs"; /* default run command */
287
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
84 static char *title = "Emacstool - "; /* initial title */
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
85 #endif JLE
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
86
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
87 static char buffer[BUFFER_SIZE]; /* send to ttysw_input */
287
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
88 static char *bold_name = 0; /* for -bold option */
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
89
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
90 Frame frame; /* Base frame for system */
287
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
91
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
92 #ifndef TTERM
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
93 #define SWTYPE TTY
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
94 Tty tty_win; /* Where emacs is reading */
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
95 #else
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
96 #define SWTYPE TERMSW
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
97 Termsw tty_win; /* Termsw does follow-mouse */
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
98 #endif TTERM
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
99
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
100 #ifdef XVIEW
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
101 Xv_Window tty_view; /* Where the events are in Xview*/
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
102 #else
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
103 Tty tty_view; /* SunView place filler */
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
104 #endif XVIEW
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
105
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
106 int font_width, font_height; /* For translating pixels to chars */
287
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
107 int left_margin = 0; /* default window -- frame offset */
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
108
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
109 int console_fd = 0; /* for debugging: setenv DEBUGEMACSTOOL */
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
110 FILE *console; /* for debugging: setenv DEBUGEMACSTOOL */
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
111
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
112 Icon frame_icon;
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
113 /* make an icon_image for the default frame_icon */
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
114 static short default_image[258] =
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
115 {
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
116 #include <images/terminal.icon>
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
117 };
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
118 mpr_static(icon_image, 64, 64, 1, default_image);
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
119
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
120 /*
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
121 * Assign a value to a set of keys
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
122 */
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
123 int
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
124 button_value (event)
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
125 Event *event;
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
126 {
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
127 int retval = 0;
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
128 /*
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
129 * Code up the current situation:
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
130 *
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
131 * 1 = MS_LEFT;
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
132 * 2 = MS_MIDDLE;
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
133 * 4 = MS_RIGHT;
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
134 * 8 = SHIFT;
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
135 * 16 = CONTROL;
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
136 * 32 = META;
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
137 * 64 = DOUBLE;
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
138 * 128 = UP;
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
139 */
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
140
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
141 if (MS_LEFT == (event_id (event))) retval = 1;
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
142 if (MS_MIDDLE == (event_id (event))) retval = 2;
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
143 if (MS_RIGHT == (event_id (event))) retval = 4;
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
144
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
145 if (event_shift_is_down (event)) retval += 8;
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
146 if (event_ctrl_is_down (event)) retval += 16;
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
147 if (event_meta_is_down (event)) retval += 32;
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
148 if (event_is_up (event)) retval += 128;
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
149 return retval;
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
150 }
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
151
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
152 /*
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
153 * Variables to store the time of the previous mouse event that was
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
154 * sent to emacs.
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
155 *
14036
621a575db6f7 Comment fixes.
Karl Heuer <kwzh@gnu.org>
parents: 6112
diff changeset
156 * The theory is that to time double clicks while ignoring UP buttons,
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
157 * we must keep track of the accumulated time.
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
158 *
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
159 * If someone writes a SUN-SET-INPUT-MASK for emacstool,
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
160 * That could be used to selectively disable UP events,
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
161 * and then this cruft wouldn't be necessary.
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
162 */
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
163 static long prev_event_sec = 0;
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
164 static long prev_event_usec = 0;
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
165
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
166 /*
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
167 * Give the time difference in milliseconds, where one second
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
168 * is considered infinite.
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
169 */
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
170 int
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
171 time_delta (now_sec, now_usec, prev_sec, prev_usec)
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
172 long now_sec, now_usec, prev_sec, prev_usec;
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
173 {
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
174 long sec_delta = now_sec - prev_sec;
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
175 long usec_delta = now_usec - prev_usec;
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
176
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
177 if (usec_delta < 0) { /* "borrow" a second */
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
178 usec_delta += 1000000;
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
179 --sec_delta;
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
180 }
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
181
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
182 if (sec_delta >= 10)
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
183 return (9999); /* Infinity */
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
184 else
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
185 return ((sec_delta * 1000) + (usec_delta / 1000));
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
186 }
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
187
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
188
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
189 /*
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
190 * Filter function to translate selected input events for emacs
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
191 * Mouse button events become ^X^@(button x-col y-line time-delta) .
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
192 * Function keys: ESC-*{c}{lrt} l,r,t for Left, Right, Top;
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
193 * {c} encodes the keynumber as a character [a-o]
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
194 */
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
195 static Notify_value
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
196 input_event_filter_function (window, event, arg, type)
287
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
197 #ifdef XVIEW
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
198 Xv_Window window;
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
199 #else
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
200 Window window;
287
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
201 #endif XVIEW
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
202 Event *event;
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
203 Notify_arg arg;
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
204 Notify_event_type type;
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
205 {
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
206 struct timeval time_stamp;
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
207
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
208 if (console_fd) fprintf(console, "Event: %d\n", event_id(event));
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
209
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
210 /* UP L1 is the STOP key */
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
211 if (event_id(event) == WIN_STOP) {
287
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
212 ttysw_input(tty_win, "\007\007\007\007\007\007\007", 7);
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
213 return NOTIFY_IGNORED;
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
214 }
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
215
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
216 /* UP L5 & L7 is Expose & Open, let them pass to sunview */
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
217 if (event_id(event) == KEY_LEFT(5) || event_id(event) == KEY_LEFT(7))
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
218 if(event_is_up (event))
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
219 return notify_next_event_func (window, event, arg, type);
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
220 else return NOTIFY_IGNORED;
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
221
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
222 if (event_is_button (event)) { /* do Mouse Button events */
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
223 /* Commented out so that we send mouse up events too.
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
224 if (event_is_up (event))
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
225 return notify_next_event_func (window, event, arg, type);
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
226 */
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
227 time_stamp = event_time (event);
287
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
228 ttysw_input (tty_win, mouse_prefix, m_prefix_length);
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
229 sprintf (buffer, "(%d %d %d %d)\015",
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
230 button_value (event),
287
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
231 (event_x (event) - left_margin) / font_width,
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
232 event_y (event) / font_height,
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
233 time_delta (time_stamp.tv_sec, time_stamp.tv_usec,
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
234 prev_event_sec, prev_event_usec)
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
235 );
287
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
236 ttysw_input (tty_win, buffer, strlen(buffer));
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
237 prev_event_sec = time_stamp.tv_sec;
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
238 prev_event_usec = time_stamp.tv_usec;
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
239 return NOTIFY_IGNORED;
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
240 }
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
241
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
242 { /* Do the function key events */
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
243 int d;
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
244 char c = (char) 0;
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
245 if ((event_is_key_left (event)) ?
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
246 ((d = event_id(event) - KEY_LEFT(1) + 'a'), c='l') :
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
247 ((event_is_key_right (event)) ?
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
248 ((d = event_id(event) - KEY_RIGHT(1) + 'a'), c='r') :
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
249 ((event_is_key_top (event)) ?
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
250 ((d = event_id(event) - KEY_TOP(1) + 'a'), c='t') : 0)))
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
251 {
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
252 if (event_is_up(event)) return NOTIFY_IGNORED;
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
253 if (event_shift_is_down (event)) c = c - 32;
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
254 /* this will give a non-{lrt} for unshifted keys */
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
255 if (event_ctrl_is_down (event)) c = c - 64;
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
256 if (event_meta_is_down (event)) c = c + 128;
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
257 #ifdef WANT_CAPS_LOCK
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
258 /* set a toggle and relabel window so T1 can act like caps-lock */
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
259 if (event_id(event) == KEY_TOP(1))
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
260 {
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
261 /* make a frame label with and without CAPS */
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
262 strcpy (buffer, Caps);
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
263 title = &buffer[CAPS_LEN];
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
264 strncpy (title, (char *)window_get (frame, FRAME_LABEL),
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
265 BUFFER_SIZE - CAPS_LEN);
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
266 buffer[BUFFER_SIZE] = (char) 0;
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
267 if (strncmp (title, Caps, CAPS_LEN) == 0)
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
268 title += CAPS_LEN; /* already Caps */
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
269 caps_lock = (caps_lock ? 0 : CAPS_LEN);
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
270 window_set(frame, FRAME_LABEL, (title -= caps_lock), 0);
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
271 return NOTIFY_IGNORED;
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
272 }
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
273 #endif
287
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
274 ttysw_input (tty_win, key_prefix, k_prefix_length);
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
275 sprintf (buffer, "%c%c", d, c);
287
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
276 ttysw_input(tty_win, buffer, strlen(buffer));
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
277
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
278 return NOTIFY_IGNORED;
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
279 }
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
280 }
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
281 if ((event_is_ascii(event) || event_is_meta(event))
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
282 && event_is_up(event)) return NOTIFY_IGNORED;
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
283 #ifdef WANT_CAPS_LOCK
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
284 /* shift alpha chars to upper case if toggle is set */
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
285 if ((caps_lock) && event_is_ascii(event)
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
286 && (event_id(event) >= 'a') && (event_id(event) <= 'z'))
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
287 event_set_id(event, (event_id(event) - 32));
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
288 /* crufty, but it works for now. is there an UPCASE(event)? */
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
289 #endif
287
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
290 #ifndef NO_META_BIT
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
291 /* under Openwindows/X, the meta bit is not set in the key event,
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
292 * emacs expects this so we add it in here:
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
293 */
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
294 if (event_is_ascii(event) && event_meta_is_down(event))
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
295 event_set_id(event, 128 | event_id(event));
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
296 #endif
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
297 return notify_next_event_func (window, event, arg, type);
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
298 }
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
299
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
300 main (argc, argv)
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
301 int argc;
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
302 char **argv;
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
303 {
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
304 int error_code; /* Error codes */
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
305
287
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
306 #ifdef JLE
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
307 setlocale(LC_ALL, "");
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
308 #endif JLE
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
309
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
310 if(getenv("DEBUGEMACSTOOL"))
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
311 console = fdopen (console_fd = open("/dev/console",O_WRONLY), "w");
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
312
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
313 putenv("IN_EMACSTOOL=t"); /* notify subprocess that it is in emacstool */
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
314
287
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
315 if (putenv("TERM=sun") != 0) /* TTY_WIN will be a TERM=sun window */
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
316 {fprintf (stderr, "%s: Could not set TERM=sun, using `%s'\n",
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
317 argv[0], (char *)getenv("TERM")) ;};
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
318 /*
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
319 * If TERMCAP starts with a slash, it is the pathname of the
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
320 * termcap file, not an entry extracted from it, so KEEP it!
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
321 * Otherwise, it may not relate to the new TERM, so Nuke-It.
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
322 * If there is no TERMCAP environment variable, don't make one.
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
323 */
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
324 {
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
325 char *termcap ; /* Current TERMCAP value */
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
326 termcap = (char *)getenv("TERMCAP") ;
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
327 if (termcap && (*termcap != '/'))
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
328 {
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
329 if (putenv("TERMCAP=") != 0)
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
330 {fprintf (stderr, "%s: Could not clear TERMCAP\n", argv[0]) ;} ;
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
331 } ;
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
332 } ;
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
333
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
334 /* find command to run as subprocess in window */
287
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
335 if (!(argv[0] = (char *)getenv("EMACSTOOL"))) /* Set emacs command name */
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
336 argv[0] = emacs_name;
287
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
337 /* Emacstool recognizes two special args: -rc <file> and -bold <bold-name> */
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
338 for (argc = 1; argv[argc]; argc++) /* Use last one on line */
287
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
339 {
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
340 if(!(strcmp ("-rc", argv[argc]))) /* Override if -rc given */
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
341 {int i = argc;
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
342 argv[argc--]=0; /* kill the -rc argument */
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
343 if (argv[i+1]) { /* move to argv[0] and squeeze the rest */
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
344 argv[0]=argv[i+1];
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
345 for (; argv[i+2]; (argv[i]=argv[i+2],argv[++i]=0));
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
346 }
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
347 }
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
348
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
349 if (!(strcmp ("-bold", argv[argc])))
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
350 {int i = argc;
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
351 argv[argc--]=0; /* kill the -bold argument */
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
352 if (argv[i+1]) { /* move to bold_name and squeeze the rest */
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
353 bold_name = argv[i+1];
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
354 for (; argv[i+2]; (argv[i]=argv[i+2],argv[++i]=0));
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
355 }
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
356 }
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
357 };
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
358
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
359 strcpy (buffer, title);
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
360 strncat (buffer, argv[0], /* append run command name */
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
361 (BUFFER_SIZE - (strlen (buffer)) - (strlen (argv[0]))) - 1);
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
362
287
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
363 error_code = interpose_on_window(argc,argv);
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
364 if (error_code != 0) { /* Barf */
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
365 fprintf (stderr, "notify_interpose_event_func returns %d.\n", error_code);
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
366 exit (1);
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
367 }
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
368
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
369 #ifdef XVIEW
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
370 xv_main_loop (frame); /* And away we go */
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
371 #else
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
372 window_main_loop (frame);
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
373 #endif XVIEW
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
374 }
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
375
287
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
376 #ifdef XVIEW
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
377 int interpose_on_window(argc,argv)
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
378 int argc;
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
379 char **argv;
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
380 {
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
381 #ifndef TTERM
14036
621a575db6f7 Comment fixes.
Karl Heuer <kwzh@gnu.org>
parents: 6112
diff changeset
382 int i, font_width_adjust = 1; /* hackery, and heuristics */
287
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
383 /* if -Wt is not supplied, then font comes out as lucida-14 (width=8)
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
384 * rather than the screen.r.12 (width=7) typically used
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
385 * this hack attempts to workaround it.
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
386 * could use a env var EMACSTOOL_DEFAULT_FONT_WIDTH instead */
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
387 for (i = 1; argv[i]; i++) {
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
388 if (!(strcmp ("-Wt", argv[i])))
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
389 {font_width_adjust = 0;
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
390 if (console_fd) fprintf(console, "-Wt = %d\n", font_width_adjust);
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
391 break;}
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
392 }
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
393 #endif TTERM
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
394 /* initialize Xview, and strip window args */
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
395 xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, 0);
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
396
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
397 /* do this first, so arglist can override it */
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
398 frame_icon = icon_create (ICON_LABEL, "Emacstool",
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
399 ICON_IMAGE, &icon_image,
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
400 0);
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
401
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
402 /* Build a frame to run in */
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
403 frame = xv_create ((Xv_Window)NULL, FRAME,
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
404 FRAME_LABEL, buffer,
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
405 FRAME_ICON, frame_icon,
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
406 0);
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
407
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
408 /* Create a tty with emacs in it */
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
409 tty_win = xv_create (frame, SWTYPE, WIN_IS_CLIENT_PANE,
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
410 TTY_QUIT_ON_CHILD_DEATH, TRUE,
287
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
411 TTY_BOLDSTYLE, TTYSW_BOLD_INVERT,
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
412 TTY_ARGV, argv,
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
413 0);
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
414
287
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
415 if (bold_name) {
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
416 (void)xv_set(tty_win, TTY_BOLDSTYLE_NAME, bold_name, 0);
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
417 }
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
418
287
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
419 {
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
420 Xv_font font; /* declare temp font variable */
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
421 font = (Xv_font)xv_get (tty_win, XV_FONT);
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
422 font_height = (int)xv_get (font, FONT_DEFAULT_CHAR_HEIGHT);
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
423 font_width = (int)xv_get (font, FONT_DEFAULT_CHAR_WIDTH);
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
424 }
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
425 if (console_fd) fprintf(console, "Width = %d\n", font_width);
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
426
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
427 #ifndef TTERM
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
428 font_width -= font_width_adjust; /* A guess! font bug in ttysw*/
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
429 #else
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
430 /* make the termsw act as a tty */
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
431 xv_set(tty_win, TERMSW_MODE, TTYSW_MODE_TYPE, 0);
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
432 /* termsw has variable offset depending on scrollbar size/location */
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
433 left_margin = (int)xv_get (tty_win, TEXTSW_LEFT_MARGIN);
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
434 #endif TTERM
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
435
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
436 tty_view = (Xv_Window) xv_get (tty_win, OPENWIN_NTH_VIEW, 0);
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
437 xv_set(tty_view,
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
438 WIN_CONSUME_EVENTS,
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
439 WIN_MOUSE_BUTTONS, WIN_UP_EVENTS,
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
440 ACTION_ADJUST, ACTION_MENU,
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
441 WIN_ASCII_EVENTS,
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
442 WIN_LEFT_KEYS, WIN_TOP_KEYS, WIN_RIGHT_KEYS,
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
443 0,
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
444 0);
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
445 /* Interpose my event function */
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
446 return (int) notify_interpose_event_func
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
447 (tty_view, input_event_filter_function, NOTIFY_SAFE);
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
448 }
287
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
449 #else
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
450 int interpose_on_window (argc, argv)
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
451 int argc;
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
452 char **argv;
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
453 {
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
454 /* do this first, so arglist can override it */
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
455 frame_icon = icon_create (ICON_LABEL, "Emacstool",
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
456 ICON_IMAGE, &icon_image,
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
457 0);
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
458
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
459 /* Build a frame to run in */
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
460 frame = window_create ((Window)NULL, FRAME,
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
461 FRAME_LABEL, buffer,
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
462 FRAME_ICON, frame_icon,
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
463 FRAME_ARGC_PTR_ARGV, &argc, argv,
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
464 0);
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
465
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
466 /* Create a tty with emacs in it */
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
467 tty_win = window_create (frame, TTY,
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
468 TTY_QUIT_ON_CHILD_DEATH, TRUE,
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
469 TTY_BOLDSTYLE, TTYSW_BOLD_INVERT,
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
470 TTY_ARGV, argv,
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
471 0);
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
472
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
473 if (bold_name) {
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
474 (void)window_set(tty_win, TTY_BOLDSTYLE_NAME, bold_name, 0);
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
475 }
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
476
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
477 /* ttysw uses pf_default, one must set WIN_FONT explicitly */
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
478 window_set (tty_win, WIN_FONT, pf_default(), 0);
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
479 font_height = (int)window_get (tty_win, WIN_ROW_HEIGHT);
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
480 font_width = (int)window_get (tty_win, WIN_COLUMN_WIDTH);
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
481
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
482 tty_view = tty_win;
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
483 window_set(tty_view,
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
484 WIN_CONSUME_PICK_EVENTS,
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
485 WIN_STOP,
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
486 WIN_MOUSE_BUTTONS, WIN_UP_EVENTS,
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
487 /* LOC_WINENTER, LOC_WINEXIT, LOC_MOVE, */
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
488 0,
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
489 WIN_CONSUME_KBD_EVENTS,
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
490 WIN_STOP,
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
491 WIN_ASCII_EVENTS,
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
492 WIN_LEFT_KEYS, WIN_TOP_KEYS, WIN_RIGHT_KEYS,
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
493 /* WIN_UP_ASCII_EVENTS, */
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
494 0,
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
495 0);
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
496 /* Interpose my event function */
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
497 return (int) notify_interpose_event_func
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
498 (tty_view, input_event_filter_function, NOTIFY_SAFE);
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
499 }
1616777eaae5 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 36
diff changeset
500 #endif XVIEW