annotate etc/emacstool.1 @ 72342:428ee64b35d5

* alloc.c (UNBLOCK_INPUT_ALLOC, BLOCK_INPUT_ALLOC): Use in_sighandler to check if mutex should be locked or not.
author Jan Djärv <jan.h.d@swipnet.se>
date Thu, 10 Aug 2006 06:09:30 +0000
parents e8a3fb527b77
children 2fca75f6fd77 c5406394f567
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
25852
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
1 .TH EMACSTOOL 1
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
2 .SH NAME
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
3 .I emacstool
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
4 \- run emacs under Sun windows with function-key and mouse support.
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
5 .SH SYNOPSIS
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
6 .I emacstool
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
7 [{window_args} {-rc run_command_path} args ... ]
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
8 .SH TYPICAL USAGE
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
9 In ~/.suntools or ~/.rootmenu include a line like this:
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
10 .br
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
11 "Emacstool" emacstool -WI emacs.icon -f emacstool-init
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
12 .SH DESCRIPTION
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
13 .B Emacstool
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
14 creates a SunView frame and a tty subwindow within which mouse events
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
15 and function keys are translated to ASCII sequences which Emacs can
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
16 parse. The translated input events are sent to the process running in
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
17 the tty subwindow, which is typically GNU Emacs. Emacstool thereby
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
18 allows GNU Emacs users to make full use of the mouse and function keys.
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
19 GNU Emacs can be loaded with functions to interpret the mouse and
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
20 function-key events to make a truly fine screen oriented editor for
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
21 the Sun Workstation.
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
22 .PP
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
23 (Note that GNU Emacs has a special interface to the X window system as
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
24 well. The X window system has many technical advantages, it is an
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
25 industry standard, and it is also free software. The Free Software
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
26 Foundation urges you to try X windows, and distributes a free copy of
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
27 X on Emacs distribution tapes.)
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
28 .PP
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
29 Function keys are translated to a sequence of the form
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
30 `^X*[a-o][lrt]'. The last character is `l', `r', or `t' corresponding
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
31 to whether the key is among the Left, Right, or Top function keys.
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
32 The third character indicates which button of the group
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
33 was pressed. Thus, the function key in the lower right corner will
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
34 transmit the sequence `^X*or'. In addition, the [lrt] is affected by
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
35 the Control, Meta, and Shift keys. Unshifted Control keys will be
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
36 non-alphabetic: C-l is [,], C-r is [2], C-t is [4].
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
37 .PP
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
38 Mouse buttons are encoded as `^X^@([124] x y)\\n'. ^X^@ is the
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
39 standard GNU Emacs mouse event prefix, it is followed by a list
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
40 indicating the button pressed and the character row and column of the
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
41 point in the window where the mouse cursor is, and followed by a
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
42 newline character. In GNU Emacs, the ^X^@ dispatches to a
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
43 mouse event handler which then reads the following list.
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
44 .SH OPTIONS
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
45 .B Emacstool
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
46 supports all the standard window arguments, including font and icon
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
47 specifiers.
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
48 .PP
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
49 By default, Emacstool runs the program
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
50 .I emacs
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
51 in the created subwindow.
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
52 The value of the environment variable
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
53 .I EMACSTOOL
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
54 can be used to override this if your version of
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
55 .B Emacs
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
56 is not accessible on your search path by the name
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
57 .I Emacs.
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
58 In addition, the run command can be set by the
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
59 .I pathname
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
60 following the last occurrence of the
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
61 .I \-rc
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
62 flag.
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
63 This is convenient for using Emacstool to run on remote machines.
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
64 .PP
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
65 All other command line arguments not used by the window system are passed
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
66 as arguments to the program that runs in the Emacstool window.
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
67 .PP
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
68 For example:
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
69 .PP
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
70 local% (emacstool -rc rlogin remote -8 &)&
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
71 .PP
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
72 will create an Emacstool window logged in to a machine named
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
73 .I remote.
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
74 If Emacs is run from this window,
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
75 Emacstool will encode mouse and function keys, and send them to rlogin.
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
76 If Emacs is run from this shell on the remote machine, it will see
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
77 the mouse and function keys properly.
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
78 However, since the remote host does not have access to the screen,
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
79 the cursor cannot be changed, menus will not appear, and the selection
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
80 buffer (STUFF) is limited.
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
81 .SH Using With GNU Emacs:
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
82 The GNU Emacs files
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
83 lisp/term/sun.el,
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
84 lisp/sun-mouse.el,
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
85 lisp/sun-fns.el,
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
86 and
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
87 src/sunfns.c
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
88 provide emacs support for the Emacstool and function keys.
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
89 Emacstool will automatically set the TERM environment variable to be "sun"
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
90 and unset the environment variable TERMCAP. That is, these variables will
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
91 not be inherited from the shell that starts Emacstool.
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
92 Since the terminal type is
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
93 .I SUN
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
94 (that is, the environment variable TERM is set to
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
95 .I SUN),
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
96 Emacs will automatically load the file lisp/term/sun.
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
97 This, in turn, will ensure that sun-mouse.el is autoloaded when any mouse
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
98 events are detected. It is suggested that
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
99 .I sun-mouse
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
100 and
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
101 .I sun-fns
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
102 be loaded in your site-init.el file, so that they will always be loaded
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
103 when running on a Sun workstation.
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
104 .PP
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
105 In addition, Emacstool sets the environment variable IN_EMACSTOOL = "t".
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
106 Lisp code in your ~/.emacs can use (getenv "IN_EMACSTOOL")
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
107 to determine whether to do Emacstool specific initialization.
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
108 Sun.el uses this to automatically call emacstool-init (getenv "IN_EMACSTOOL")
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
109 is defined.
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
110 .PP
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
111 The file src/sunfns.c defines several useful functions for emacs on
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
112 the Sun. Among these are procedures to pop-up SunView
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
113 .I menus,
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
114 put and get from the SunView
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
115 .I STUFF
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
116 buffer, and a procedure for changing the cursor
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
117 .I icon.
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
118 If you want to define or edit cursor icons,
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
119 there is a rudimentary mouse driven icon editor in the file
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
120 lisp/sun-cursors.el. Try invoking (sc:edit-cursor)
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
121 .SH BUGS
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
122 It takes a few milliseconds to create a menu before it pops up.
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
123 .SH ENVIRONMENT VARIABLES
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
124 EMACSTOOL
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
125 IN_EMACSTOOL
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
126 TERM
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
127 TERMCAP
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
128 .SH FILES
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
129 .DT
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
130 emacs
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
131 .SH "SEE ALSO"
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
132 emacs(1)
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
133 .../etc/SUN-SUPPORT
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
134 .../lisp/term/sun.el
37512
1c152bba534b Place under the GFDL.
Eli Zaretskii <eliz@gnu.org>
parents: 25852
diff changeset
135 .SH COPYING
1c152bba534b Place under the GFDL.
Eli Zaretskii <eliz@gnu.org>
parents: 25852
diff changeset
136 Copyright
1c152bba534b Place under the GFDL.
Eli Zaretskii <eliz@gnu.org>
parents: 25852
diff changeset
137 .if t \(co
1c152bba534b Place under the GFDL.
Eli Zaretskii <eliz@gnu.org>
parents: 25852
diff changeset
138 .if n (c)
68640
e8a3fb527b77 Update years in copyright notice; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents: 65088
diff changeset
139 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
37512
1c152bba534b Place under the GFDL.
Eli Zaretskii <eliz@gnu.org>
parents: 25852
diff changeset
140 .PP
41399
3fbd6b1cb498 Modify distribution terms.
Eli Zaretskii <eliz@gnu.org>
parents: 37512
diff changeset
141 Permission is granted to make and distribute verbatim copies of this
3fbd6b1cb498 Modify distribution terms.
Eli Zaretskii <eliz@gnu.org>
parents: 37512
diff changeset
142 document provided the copyright notice and this permission notice are
3fbd6b1cb498 Modify distribution terms.
Eli Zaretskii <eliz@gnu.org>
parents: 37512
diff changeset
143 preserved on all copies.
37512
1c152bba534b Place under the GFDL.
Eli Zaretskii <eliz@gnu.org>
parents: 25852
diff changeset
144 .PP
41399
3fbd6b1cb498 Modify distribution terms.
Eli Zaretskii <eliz@gnu.org>
parents: 37512
diff changeset
145 Permission is granted to copy and distribute modified versions of
3fbd6b1cb498 Modify distribution terms.
Eli Zaretskii <eliz@gnu.org>
parents: 37512
diff changeset
146 this document under the conditions for verbatim copying, provided that
3fbd6b1cb498 Modify distribution terms.
Eli Zaretskii <eliz@gnu.org>
parents: 37512
diff changeset
147 the entire resulting derived work is distributed under the terms of
3fbd6b1cb498 Modify distribution terms.
Eli Zaretskii <eliz@gnu.org>
parents: 37512
diff changeset
148 a permission notice identical to this one.
3fbd6b1cb498 Modify distribution terms.
Eli Zaretskii <eliz@gnu.org>
parents: 37512
diff changeset
149 .PP
3fbd6b1cb498 Modify distribution terms.
Eli Zaretskii <eliz@gnu.org>
parents: 37512
diff changeset
150 Permission is granted to copy and distribute translations of this
3fbd6b1cb498 Modify distribution terms.
Eli Zaretskii <eliz@gnu.org>
parents: 37512
diff changeset
151 document into another language, under the above conditions for
3fbd6b1cb498 Modify distribution terms.
Eli Zaretskii <eliz@gnu.org>
parents: 37512
diff changeset
152 modified versions, except that this permission notice may be stated
3fbd6b1cb498 Modify distribution terms.
Eli Zaretskii <eliz@gnu.org>
parents: 37512
diff changeset
153 in a translation approved by the Free Software Foundation.
52401
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 41399
diff changeset
154
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 41399
diff changeset
155 .\" arch-tag: a1f44815-5163-4026-89c1-4404e4b81d37